将Redux Reducer与相同组件的不同实例相结合

时间:2016-03-14 22:45:40

标签: react-native redux

我有两个使用React Native实现的视图,称为authentication和main。每个视图都包含单独的共享键盘组件实例和用于显示键盘文本类型的简单文本视图。这些视图的状态由Redux以简单格式维护:

authentication : {
   keyboard : {
       value : ""
   }
}
main {
   keyboard : {
       value : ""
   }
}

Reducers实现如下:

let main = combineReducers( { keyboard: keyboard } );
let authenticate = combineReducers( { keyboard: keyboard } );
let combinedReducers = combineReducers( {
   main,
   authenticate
 } );

基于接收操作的键盘减速器会将字符附加或删除到值。现在这里出现了魔力,我不明白为什么价值更新两次,无论是在身份验证还是在主要部分。即使键盘组件是连接容器的单独实例?!我认为有些事情需要与减速器相结合,但想象一下究竟是什么......

1 个答案:

答案 0 :(得分:0)

combineReducers函数会自动将给定的状态块传递给该键的reducer函数以及当前操作。此外,看起来你在两个地方使用相同的“键盘”减速器功能。这意味着如果你调度一个特定的动作,“键盘”减速器的两个用途都会被调用,两个都会看到一些状态+这个动作,两者都会响应。这只是同一个函数被调用两次的问题,因为它被连接了两次。