Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 这种良好做法是否将状态存储在变量中?_Reactjs - Fatal编程技术网

Reactjs 这种良好做法是否将状态存储在变量中?

Reactjs 这种良好做法是否将状态存储在变量中?,reactjs,Reactjs,我刚开始学习ReactJS,有一些问题。我在阅读文档,但我找不到我要找的答案。以下是一个例子: var Awesome = React.createClass({ getInitialState:function() { return { txt : ["1","2","3","4","5"], isTrue : true } }, handleClick:function() { this.setState({ isTr

我刚开始学习ReactJS,有一些问题。我在阅读文档,但我找不到我要找的答案。以下是一个例子:

var Awesome = React.createClass({
  getInitialState:function() {
    return {
      txt : ["1","2","3","4","5"],
      isTrue : true
    }
  },

  handleClick:function() {
    this.setState({
      isTrue : !this.state.isTrue
    })
  },

  render:function() {
    var changeStyle = {
      display: this.state.isTrue ? "block" : "none"
    };

    var message = this.state.txt.map(function(oneMessage) {
      return  <SubChild change={changeStyle} txt={oneMessage}/>
    });

    return (
      <div>
        <button onClick={this.handleClick} >Click Me</button>
        {message}
      </div>
      )
  }
})

var SubChild = React.createClass({
  render:function() {
    return (
      <div style={this.props.change}>
        <h3>{this.props.txt}</h3>
      </div>
      )
  }
})

React.render(<Awesome />, document.body)
var Awesome=React.createClass({
getInitialState:函数(){
返回{
txt:[“1”、“2”、“3”、“4”、“5”],
伊斯特鲁:是的
}
},
handleClick:function(){
这是我的国家({
isTrue:!this.state.isTrue
})
},
render:function(){
变量changeStyle={
显示:this.state.isTrue?“块”:“无”
};
var message=this.state.txt.map(函数(oneMessage){
返回
});
返回(
点击我
{message}
)
}
})
var SubChild=React.createClass({
render:function(){
返回(
{this.props.txt}
)
}
})

React.render(

为什么使用状态变量?

使用状态变量的想法是具有变化/动态数据,即如果组件的任何内容发生变化,则应将其定义为组件中的状态变量,以便用户交互可以导致该变量的变化,并且该变量的变化会导致受影响的组件重新渲染

属性的使用

如果组件的每个实例的某个值都发生了更改,并且没有受到用户交互或组件状态更改的影响,则应将其定义为属性,以便在实例化时只能分配一次


在所有情况下,我们都无法真正避免在渲染中使用变量实际上,我甚至看不到在变量中存储状态的行:)如果您是指
渲染
方法中的变量,这是完全可以接受的做法,您不在此处存储状态,而是存储要渲染的组件的片段。它无疑提高了文档的可读性和可维护性code@beshanoe是的,我说的是渲染函数中的变量。谢谢你的解释。。好的,现在我对状态和道具的理解更清楚了。感谢您@arkoak并为您+1