Как я могу скрыть элемент svg с помощью reactjs

Как я могу скрыть / показать элемент через атрибут видимости по его Id = "test" с учетом этого кода:

import * as React from 'react';
import ImageSvg from '../mysvg.svg';

export class Test extends React.Component {

    constructor(props: any) {
        super(props);
    }

    public render() {
        return (<img src = {ImageSvg } />);
    }
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
648
4

Ответы 4

Я буду использовать для этого реквизит. Что-то вроде :

  render() {
  if (!this.props.show){
    return '';
  }
    return <img src = {ImageSvg } />;
  }

Тогда вы можете использовать это как

<Test show = "true" /> 

Попробуйте условный рендеринг:

    public render() {
        return {this.props.show && <img src = {ImageSvg } />}
    }

В этом случае, если свойство show будет true, тогда будет отображаться <img />, если нет, то ничего не будет отображаться.

https://reactjs.org/docs/conditional-rendering.html#inline-if-with-logical--operator

Я имел в виду, как скрыть некий элемент ВНУТРИ изображения svg ?!

HelloWorld 06.06.2018 15:42

Надеюсь, код вам поможет.

public render(){
  return (
    <div>  
        { this.state.show ? <img src = { ImageSvg } /> :'' }  
    </div>
  );
} 

Я имел в виду, как скрыть некий элемент ВНУТРИ изображения svg ?!

HelloWorld 06.06.2018 15:42

Вы можете скрыть с помощью css, когда используете условный рендеринг.

Araz Babayev 06.06.2018 20:04

Если вы хотите, чтобы элемент занимал место при скрытии, чтобы макет не сдвигался, вы можете просто использовать встроенные стили с атрибутом видимости:

  render() {
    return (
      <div style = {{ visibility: 'hidden'}}>
        Hi guys
      </div>
    );
  }

Таким образом, вы все равно будете визуализировать существующий элемент и просто контролировать видимость с помощью стиля.

Другие вопросы по теме