【问题标题】:Combined Redux reducers with different instance of the same component将 Redux reducer 与同一组件的不同实例相结合
【发布时间】:2016-06-30 04:46:41
【问题描述】:

我有两个使用 React Native 实现的视图,称为身份验证和主视图。每个视图都包含共享键盘组件的单独实例和用于显示从键盘文本键入的简单文本视图。这些视图的状态由 Redux 以一种简单的格式维护:

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

reducer 实现如下:

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

键盘的 reducer 基于接收到的操作将字符附加或删除到值。现在魔法来了,我不明白为什么值会更新两次,包括身份验证和主要部分。即使键盘组件是连接容器的单独实例?!我认为有些东西需要与减速器结合,但很难想象到底是什么......

【问题讨论】:

    标签: react-native redux


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-11
      • 2018-01-23
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 2019-03-12
      相关资源
      最近更新 更多