Как использовать переменную в ответ, которая определена в рендере React / Redux? - PullRequest
0 голосов
/ 25 сентября 2018

Как использовать переменную sexname взамен?есть ошибка "sexname не определено", как ее решить?

render()
  {
    const { loading,popupVisible,edit } = this.state;
    const{information, about, data, photo,}=this.props;

    if(information.sex === 'w'){
      let sexname = 'женский'

    }else if(information.sex === 'm'){
      let sexname = 'мужской'

    }else {
      let sexname ='Пока не указано';

    }
return (
            <Aboutinfo>{

                information.sex !== null && information.sex !== undefined ?
                  sexname
                  : 'Пока не указано'

              }</Aboutinfo>
);
  }

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

let блокируется в области, поэтому он доступен только в непосредственном блоке (блок находится между { .... }, что в вашем случае находится в операторе if, мы можем решить эту проблему, переместив let sexname к началу функции.

 render()
  {
    const { loading,popupVisible,edit } = this.state;
    const{information, about, data, photo,}=this.props;
    let sexname = ""

    if(information.sex === 'w'){
      sexname = 'женский'

    }else if(information.sex === 'm'){
      sexname = 'мужской'

    }else {
      sexname ='Пока не указано';

    }
0 голосов
/ 25 сентября 2018

Вы переопределяете его локально каждый раз для его собственного блока, так что он выходит за рамки после каждого блока {}.Переместите его ниже const объявлений, и оно должно работать.

let sexname;

...
else {
   sexname = ...;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...