在这个场景中进行了几次测试之后,我遇到了一些我无法回答的问题,所以我请求帮助澄清我的概念。
有什么区别,设置导航器并将商店传递到React Native应用程序的不同场景的最佳方法是什么
export default class App extends Component {
render () {
return (
<Provider store={store}> //<-- here
<Navigator style={{flex: 1}}
initialRoute={{ component: MainContainer }} //<-- here
renderScene={ (route, navigator) => {
const Component = route.component;
return (
<View style={{flex: 1, marginTop:40}}>
<Component navigator={navigator} route={route} {...route.passProps} />
</View>
...
MainContainer
与react-redux Component
函数中的connect
相关联,将道具和操作传递给props
。
是否可以更好地访问上下文或道具?
VS
const store = createStoreWithMiddleware(reducer, initialState); //<-- here
export default class App extends Component {
render () {
return (
<Navigator style={{flex: 1}}
initialRoute={{ component: MainComponent }}
renderScene={ (route, navigator) => {
const Component = route.component;
return (
<View style={{flex: 1, marginTop:40}}>
<Component
navigator={navigator}
route={route}
{...route.passProps}
store={store} //<-- here
/>
</View>
...
在state
中推送actions
,然后passProps
调度操作时,将newScene
(Redux商店)和Navigator
传递为newScene
并且正确执行,状态为update,但是......不会重新渲染场景。
我是否必须将状态组件绑定到Redux状态才能看到屏幕上反映的更改?
此方案中是否有关于最佳做法的示例?
props
与 connect
相同的Scene
在相同的Scene
,从顶部到底部组件,这是传递redux state
的最佳方法(不是在讨论{{ 1}})将component state
中的某个组件包裹在&{39; 'smart' container
&#39;来自connect
,或将洞穴场景传递为react-redux
。
答案 0 :(得分:2)
componentDidReceiveProps
或(我更喜欢的)上运行回调,只需连接需要访问商店的组件即可。这正是redux的用途。不这样做的唯一原因是,如果您希望将组件与其他商店内容重复使用(真正具有代表性的组件)