gpt4 book ai didi

flux - 如何处理在多个状态域中产生变化的事件?

转载 作者:行者123 更新时间:2023-12-01 08:05:41 25 4
gpt4 key购买 nike

我正在开发 map 应用程序。它由两个部分组成:

  • 一个显示当前用户位置的组件;和
  • 带有地址建议的地址搜索组件。

这些组件依赖于以下状态域:

state.userAddress = {
name: 'Didzioji g. 10, Vilnius'
};

state.addressSearch = {
state: 'inactive',
query: '',
addresses: []
};

当用户从地址建议列表中选择地址时,它会调用事件处理程序 onSelectAddressonSelectAddress 需要触发两个状态变化:

  • userLocation设置为新位置;和
  • 通知位置选择提示关闭

正确的设计方法是什么?

  • 智能组件是否应该依次调度两个 Action ,一个调用 USER_LOCATION_CHANGE 更改,另一个调用 ADDRESS_SEARCH_HIDE;或
  • 智能组件是否应该分派(dispatch)由两个不同的 reducer 处理的单个操作(例如 USER_CHANGE_LOCATION)?

最佳答案

在类似的情况下,我选择从目标操作中调度另一个操作。

试图在代码中显示这一点

module.exports.locationChange = function clickElement(element) {
return function(dispatch, getState) {
dispatch({
type: actionTypes.USER_CHANGE_LOCATION
});

dispatch({
type: actionTypes.ADDRESS_SEARCH_HIDE
});
}};

我使用 redux-thunk 进行异步操作。

关于flux - 如何处理在多个状态域中产生变化的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31986417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com