前缀:
我正在使用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
。我是一个相对较新的反应本地人,我正在努力学习尽可能多的东西。我已经在几个具有不同结果的用例中尝试过,并且对行为不确定。感谢您的投入!
答案 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
会自动更改孩子。