如何将变量从动作传递到组件

How to pass a variable from actions to component

万岁,我的 API 回答控制台记录在我的操作中:

function listTemplates(specs) {
    const payload = templateList.post(specs);
    return dispatch => dispatch({ ...types.GET_TEMPLATES, payload });
}

function apiResponse(response) {
    const res = response;
    console.log(res);
}

const actions = {
    listTemplates,
    apiResponse,
};

等等,但我如何将它发送到我的组件进行处理和显示?

更新:

我在本指南的末尾做了一些跟进:http://redux.js.org/docs/basics/UsageWithReact.html#implementing-container-components

并将其改编为我的(更完整的(applyMiddleware + Store.jsx 作为一个单独的文件))应用程序设置。

所以不,我到处都有商店。

这是我的 GetTemplate.jsx 减速器:

import EventTypes from '../EventTypes';
import actions from '../../Components/Menu/actions';

const initialState = {
    templates: [],
};

export default (state = initialState, action) => {
    switch (action.type) {
        case EventTypes.GET_TEMPLATES_FULFILLED.type:
            const returnValue = action.payload.body().data();
            actions.apiResponse(returnValue);
            return state;
        default:
            return state;
    }
};

我错过了什么?我真的不明白这一切是如何运作的。

我的模板列表组件需要什么?

    case EventTypes.GET_TEMPLATES_FULFILLED.type:
        const returnValue = action.payload.body().data();
        actions.apiResponse(returnValue); // ← ←
        return state;

Redux reducer 应该 return 新状态,而不是调用其他操作。使用类似:

return Object.assign({}, state, { templates: returnValue })

现在 Redux 会将该数据保存在它的存储中。然后,使用 connect function from react-redux,您可以 select 来自商店的数据并在您的组件中使用它。

function mapStateToProps (state) {
  return { templates: state.templates }
}
export default connect(mapStateToProps)(TemplatesComponent)