在reactjs中有观察者的概念,我们可以做一些类似于带有道具的观察者和反应中的状态

时间:2018-01-25 22:40:27

标签: reactjs states react-props

我是Reactjs的新手,我来自棱角分明的背景,我是否可以认为Props就像在angularjs中的brodcast,状态就像观察者,

如果我错了,请纠正..

提前致谢..

1 个答案:

答案 0 :(得分:0)

状态就像一个组件的状态,而支柱是一个属性。在示例中,狗具有白色,然后该狗具有白色属性。虽然州是狗的当前状态,但狗是否健康?生病?或者 。反应中棘手的部分是国家也可以作为道具传递。例如:

有2个组件。巧克力和FooBar让它变得如此简单。和巧克力组件称为FooBar

    class Chocolates extends React.Component {
            render(){
               return(
                  <FooBar />
            }
    }

如果Chocolates的状态未打开,它也可以传递给FooBar Component,但不能传递给状态,但已经作为道具

     constructor(props){
          super(props);
          this.state({
               open:false
          })
      }
从上面的代码中可以看出,Chocolate中的构造函数表示组件“open”的状态为false,请注意:STATE。在这段代码上:

    class Chocolates extends React.Component {
            render(){
               return(
                  <FooBar
                      open_state_from_chocolates ={this.state.open}
                   />
            }
    }

我们将状态“开放”传递给FooBar作为名为“open_state_from_chocolates”的道具

现在您可以在FooBar中使用“open_state_from_chocolates”,如下所示:

    class FooBarextends React.Component {
            render(){
             const { open_state_from_chocolates } = this.props;
               return(
                  console.log(open_state_from_chocolates);
            }
    }

这是一种单向绑定,现在只要在“巧克力”中修改状态,它就会自动传递给Foobar,因此组件将被重新渲染。