Redux 批处理在 React Native 应用程序上无法正常工作

Redux batch doesn't work properly on React Native app

需要调用多个调度。尝试使用 react-redux 中的批处理,但它仅触发函数内的第一次调度。尝试交换调度,相同,仅触发第一个,已在开发工具中检查。 Thunk 已连接

在应用程序中:

  dispatch(
    setData({
      user,
      userLang,
      userToken,
      dateMargin,
    }),   )

操作:

export const setData = ({user, userLang, userToken, dateMargin}) => {
  return dispatch => {
    batch(() => {
      dispatch(setToken(userToken))
      dispatch(setLang(userLang))
      dispatch(setUser(user))
      dispatch(setDateMargin(dateMargin))
    })
  }
}

是的,batchreact-dom 的再出口。 React-native 没有类似的API,所以那是不可能的。

一般来说,建议Model Actions as Events, Not Setters, Allow Many Reducers to Respond to the Same Action and to Avoid Dispatching Many Actions Sequentially(更多解释见链接),所以你在这里做的几乎是一个反模式:
你的组件中有逻辑,尽管 Redux 的强大之处在于它将状态逻辑从你的组件中移出到你的商店中。

按照官方 Redux 风格指南的建议,您更愿意

  dispatch(userLoggedIn({
    userToken,
    userLang,
    user,
    dateMargin
  })

并且可能有多个 reducer 作用于该事件类型的操作。