React native 什么';这是从头组件传递数据的良好实践

React native 什么';这是从头组件传递数据的良好实践,react-native,react-redux,React Native,React Redux,在我的stackNavigator中,我制作了一个名为SearchBarHeader的自定义组件,它位于标题内部 在SearchBarHeader组件中有一个状态,它是用户正在搜索的内容 我需要该状态来更新我的搜索组件中的平面列表组件 我的问题是我应该为redux做什么?通过导航选项传递数据?还有别的吗 const SearchStack = createStackNavigator( { Search: { screen: Search, navigatio

在我的stackNavigator中,我制作了一个名为SearchBarHeader的自定义组件,它位于标题内部

SearchBarHeader组件中有一个状态,它是用户正在搜索的内容

我需要该状态来更新我的搜索组件中的平面列表组件

我的问题是我应该为redux做什么?通过导航选项传递数据?还有别的吗

const SearchStack = createStackNavigator(
  {
    Search: {
      screen: Search,
      navigationOptions: ({ navigation }) => ({
        headerTitle: <SearchBarHeader navigation={navigation} />
      })
    },
  },
  {
    initialRouteName: "Search"
  }
);
const SearchStack=createStackNavigator(
{
搜索:{
屏幕:搜索,
导航选项:({navigation})=>({
标题:
})
},
},
{
initialRouteName:“搜索”
}
);

我建议使用redux,使用redux,您可以将所有应用程序状态存储在一个可供所有组件访问的对象中。如果使用navigationOption传递数据,当应用程序逻辑增长时,维护应用程序将更加困难。Redux有利于状态管理和组件之间的数据传递,但它有一个相当大的学习曲线

但在父子数据传递中,您可以简单地使用道具

在父母中

this.props.navigation.navigate('ChildComponent',{my_data:'这是示例数据字符串'})

在儿童时期

this.props.navigation.state.params.my_data

这是最简单的方法

除此之外,您还可以使用React上下文API,它非常容易学习和实现。 您可以参考这里的文档