在组件类之间动态传递和更新UI和数据(React Native)

时间:2018-10-08 17:49:42

标签: react-native

我的目标:在我的应用中,我有一个包装在 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?

再次感谢您的帮助!

1 个答案:

答案 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,所以请阅读这篇文章。