在这个场景中进行了几次测试之后,我遇到了一些我无法回答的问题,所以我请求帮助来澄清我的概念。
有什么区别以及设置导航器并将存储传递到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
(Redux商店)和newScene
作为Navigator
传递,然后newScene
调度动作并正确执行,状态更新,但是......不会重新渲染场景。
我是否必须将状态组件绑定到Redux状态才能看到屏幕上反映的更改?
在这种情况下,是否有关于最佳实践的示例?
props
vs connect
在同一个Scene
在相同的Scene
,从顶部到底部组件,这是通过redux state
(不是在谈论component state
)的最佳方法,用'smart' container
中的'connect
'包裹react-redux
中的组件,或者通过孔场景为props
。
componentDidReceiveProps
上运行回调,或者(我更喜欢)只需连接需要访问商店的组件。这正是redux的用途。不这样做的唯一原因是,如果您希望将组件重用于其他商店内容(真正具有代表性的组件)