2016-03-14 101 views
0

我使用React Native实现了两个视图,分别称为authentication和main。每个视图都包含单独的共享键盘组件实例和用于从键盘文本输入的简单文本视图。这些视图状态由终极版在一个简单的格式维护:组合Redux减速器与同一组件的不同实例

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

减速被执行如下:根据接收到的动作的

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

键盘的减速追加或删除字符值。现在来了魔术,我不明白为什么值更新两次,在身份验证&主要部分。即使键盘组件是连接容器的单独实例?!我认为有些东西需要与reducer结合使用,但要想象究竟是什么很难......

回答

0

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