我在我的应用中使用'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配置。
答案 0 :(得分:1)
如果我正确理解了您的问题,即使您在注册每个屏幕时通过store
和Provider
,您仍然只需要connect
您要订阅商店的组件并使用Redux正常的方式。所以:
export default connect(mapStateToProps, mapDispatchToProps)(Screen1)
我假设因为您使用react-redux标记了您的问题,您了解该库的使用情况。如果没有,请查看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