在React Native中的组件之间进行通信?

时间:2015-12-24 06:52:30

标签: react-native

这是我的反应原生代码:

<NavigatorIOS
ref='nav'
style={styles.container}
initialRoute={{
    title: 'List',
    component: TaskList,
    rightButtonTitle: 'new',
    onRightButtonPress: () => {
        this.refs.nav.push({ 
        title: 'Add Task',
        component: AddTask
        });
    }
}} />

如何将一些通知从AddTask组件推送到TaskList组件?

文档说“对于没有父子关系的两个组件之间的通信,您可以设置自己的全局事件系统。

所以我需要建立一个全球事件系统?

2 个答案:

答案 0 :(得分:3)

communicate-between-components说:

  

用于两个没有组件的组件之间的通信   亲子关系,Flux模式是其中一种可能   如何安排这个。

您可以在react-native项目中使用Flux

以下是Flux + React-Native的演示:

您可以查看github的源代码。

答案 1 :(得分:0)

我使用Navigator,但我认为NavigatorIOS也是如此。

您可以传递道具,例如您的标题,组件:

<NavigatorIOS
ref='nav'
style={styles.container}
initialRoute={{
  title: 'List',
  component: TaskList,
  rightButtonTitle: 'new',
  onRightButtonPress: () => {
    this.refs.nav.push({ 
    title: 'Add Task',
    component: AddTask
    myInformation:'information'
    });
  }
}} />

'信息'可以被全局变量替换。

要将道具从AddTask传递到TackList,它也是一样的。您可以在pop中传递道具或替换或推送