如何使用渲染React / Redux中定义的变量作为回报?

时间:2018-09-25 14:27:30

标签: reactjs redux

如何使用变量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 :(得分:3)

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 ='Пока не указано';

    }

答案 1 :(得分:0)

您每次都在本地重新定义它自己的块,因此它在每个块{}之后超出范围。将其移到const声明下方,它应该可以工作。

let sexname;

...
else {
   sexname = ...;
}