本地反应存储在不同屏幕上

时间:2017-12-06 22:03:44

标签: react-native react-redux store react-native-navigation

我在我的应用中使用'react-native-navigation'模块进行导航。我已将我的屏幕声明如下

import Screen1 from '../container/Screen1';
import Screen2 from '../container/Screen2';

const store = myStore();

Navigation.registerComponent('Screen1',() => Screen1,store,Provider);
Navigation.registerComponent('Screen2',() => Screen2,store,Provider);

Navigation.startSingleScreenApp({

screen:{
    screen:'Screen1',
    title:'Screen1',
    navigatorStyle:{
        navBarHidden:true
    }
}
});

我的挑战是在不同的屏幕上使用商店,以便我可以发送一个动作。有什么办法可以实现吗?

注意:myStore在另一个文件中声明,完成所有reducer,thunk配置。

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,即使您在注册每个屏幕时通过storeProvider,您仍然只需要connect您要订阅商店的组件并使用Redux正常的方式。所以:

export default connect(mapStateToProps, mapDispatchToProps)(Screen1)

我假设因为您使用标记了您的问题,您了解该库的使用情况。如果没有,请查看Usage with React

答案 1 :(得分:0)

您可以通过以下示例示例的连接方法使用它

export default connect(mapStateToProps, mapDispatchToProps)(Screen1)

对于某些屏幕,如果您不想更改存储值而只想使用存储值,请说Screen2,然后可以将null用作mapStateToProps

export default connect(null, mapDispatchToProps)(Screen2)

对于某些屏幕,如果您只想更改存储的值(执行操作)但不想显示值,请说Screen3,那么您可以避免传递mapDispatchToProps

export default connect(mapStateToProps)(Screen3)

示例代码,您可以在这里找到 https://github.com/rajscet/react_redux_basic