如何将变量从动作传递到组件
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)
万岁,我的 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)