通过州

时间:2018-04-02 20:25:08

标签: javascript react-native react-native-android

前缀:

我正在使用react-native,并且想知道将props从父级传递到子组件的最佳实践。我只在我的Android设备上测试了这个。

问题:

根据我的理解,可以通过使用props将值传递给组件,即:

<myComponent myProp="some data" />

可以使用this.props.myProp在myComponent中引用它。在构造函数中创建我的状态对象是不好的做法(或者甚至可以工作),如下所示:

constructor(props){
  super(props);
  this.state = {
    myStateProp: this.props.myProp
  };
}

然后可以在该组件中调用this.state.myStateProp。我是一个相对较新的反应本地人,我正在努力学习尽可能多的东西。我已经在几个具有不同结果的用例中尝试过,并且对行为不确定。感谢您的投入!

1 个答案:

答案 0 :(得分:1)

这样做的理由很少。它通常被认为是反模式,因为组件应尽可能无状态。

如果你要做的是通过传入props并使用as作为状态来控制组件,我建议在父组件中保持状态,然后使用回调通过props将任何更改传递回链。

例如

ComponentOne {
    this.state = { colour:red }

    handleColourChange(val){
        this.setState({ colour: val })
    }

    return <ComponentTwo changeColour={this.handleColourChange} colour={this.state.colour} />
}

然后在ComponentTwo中想象我们有一个按钮,你想改变颜色:

<button onClick={this.changeColour(blue)}>Change to blue</button>

这样,您的子组件仍然是无状态的,并由其父组件控制。 this.props.colour会自动更改孩子。