3

我正在开发一个地图应用程序。它由两个组件组成:

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

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

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

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

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

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

设计这个的正确方法是什么?

  • 智能组件是否应该一个接一个地调度两个动作,一个调用USER_LOCATION_CHANGEchange ,另一个调用ADDRESS_SEARCH_HIDE;或者
  • USER_CHANGE_LOCATION智能组件是否应该调度由两个不同的减速器处理的单个动作(例如)?
4

1 回答 1

3

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

试图在代码中显示这一点

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

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

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

于 2015-08-21T15:43:18.870 回答