我的目标:在我的应用中,我有一个包装在 TxtMsgTypePicker 类中的选择器组件。我还有另一个名为 TxtMsgParamView 的类,该类需要从TxtMsgTypePicker类中接收选定的值,并且一旦由TxtMsgTypePicker类选择了一个值,就更新UI和数据在我的TxtMsgParamView类中。
这是我的代码:
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
text: '',
pickedTxtMsgType: enums.TxtMsgType.CONFIRM_PHONE_NUMBER
}
}
render() {
return (
<View style={styles.parentView}>
<View style={styles.view3}>
<TxtMsgParamView
onChangeText = {(text) => this.setState({text: text})}
txtMsgType = {this.state.pickedTxtMsgType}
>
</TxtMsgParamView>
</View>
<View style={styles.view4}>
<TxtMsgTypePicker
onValueChange = {(pickedTxtMsgType) => this.onPickedTxtMsgType(pickedTxtMsgType)}
>
</TxtMsgTypePicker>
</View>
</View>
);
}
}
当前,我能够通过道具将TxtMsgTypePicker类中的选定值发送到TxtMsgParamView类。但是,问题不在于问题是从TxtMsgTypePicker类获取值,当TxtMsgTypePicker类从TxtMsgTypePicker类中接收到选定的值时,TxtMsgParamView类如何侦听,以便选中后,TxtMsgParamView类可以对其进行处理,例如更新其数据和UI?
再次感谢您的帮助!
答案 0 :(得分:0)
主要问题是the problem is, how does TxtMsgParamView class listen for the when it recieves the selected value from the TxtMsgTypePicker
,所以答案是:将道具放到孩子的React组件中时,它们会在道具更改时分别更新。如果道具没有变化,则子组件将不会更新。
您必须阅读官方文档how React updates components,我想您想在自己的TxtMsgParamView
中制作conditional rendering,所以请阅读这篇文章。