Javascript 未定义变量,在渲染方法中的if/else内部指定

Javascript 未定义变量,在渲染方法中的if/else内部指定,javascript,reactjs,Javascript,Reactjs,我有一个简单的组件,可以从家长那里获得道具: render(){ const {message} = this.props; if(message){ let {title, text} = message; } else { let title= 56; let text= 34; console.log('inside') console.log(title); }

我有一个简单的组件,可以从家长那里获得道具:

render(){
    const {message} = this.props;

    if(message){
        let {title, text} = message;
    } else {

        let title= 56;
        let text= 34;
        console.log('inside')
        console.log(title);
    }

    console.log('outside');
    console.log(lat);

    return( // JSX) // The vars are not used
当我运行它时,
消息
未定义,我在控制台中看到-
内部
54
。 紧接着是
外部
参考错误:未定义标题
。 如果我复制/粘贴
title=56外部if/else,一切正常。
对于所有情况下的调试,
消息
未定义。
这是为什么?

使用
let定义的变量是块作用域,因此如果
/
else
块,它们将不存在于
之外。您可以在if
/
else
之前定义它们,然后在那里为它们赋值

class App extends React.Component {
  render() {
    const { message } = this.props;
    let title, message;

    if (message) {
      title = message.title;
      text = message.text;
    } else {
      title = 56;
      text = 34;
    }

    return <>{/* ... */}</>;
  }
}
类应用程序扩展了React.Component{
render(){
const{message}=this.props;
让标题、消息;
如果(信息){
title=message.title;
text=message.text;
}否则{
头衔=56;
文本=34;
}
返回{/*…*/};
}
}

@gdfgdfg不客气!没错,
const
也是块范围的。