3

我正在为我的应用程序中的用户创建个人资料屏幕。我正在使用 wix 的 React-Native-Navigation 的灯箱来执行编辑配置文件。因此,用户将单击 touchableopacity 并弹出一个灯箱,用户将输入新信息并保存。所以,我想知道是否可以将文本输入值从灯箱传递给父级(profile.js),以便我可以在 profile.js 中设置状态?

4

2 回答 2

1

是的,这是可能的。您需要将数据作为道具发送给父级。如果你之前没有做过,可能会觉得有点棘手,但你会做到的。

来自家长:

<LightboxComponent 
  userData={this.handleUserData(data)}
/>

handleUserData(data) {
  /* Do something with the data here */
}

来自孩子:

要发送数据,您需要在要捕获的输入上设置 onChange 事件或类似事件,如下所示:

<input name="user-name" onChange={ (e) => this.props.userData(e.target.value) }

这将使来自孩子的输入数据发送给父母。每次更改都会触发受影响组件的重新渲染。

如果您的应用程序抱怨无法正确设置状态,那么您需要在父构造函数中绑定它,如下所示:

this.handleUserData = this.handleUserData.bind(this);
于 2018-06-01T09:33:51.257 回答
0

我还要说将父母的函数指针作为道具传递给孩子(如在 React 网站上所见)。尽管有些人选择使用事件发射器。我真的很好奇更多开发人员对此的看法。

是否以 StackOverflow 为由进行史诗般的否决投票使线程脱轨?

于 2018-06-03T04:09:24.830 回答