如何解决在 redux reducer 中刷新值的问题为什么我不能创建动作并分配新的状态值?
我无法使用操作创建器更新我的商店值。我通常从组件中获得所有需要的值,但不能用它们替换初始状态值。我相信我犯了一个愚蠢的错误,甚至拼错了一些东西,但我已经花了很多时间,浏览器中的控制台仍然向我显示该减速器状态下的空字符串。
let initialstate = {
login: "",password: ""
}
const formReducer = (state = initialstate,action) => {
switch (action.type) {
case 'SET-FORM-DATA': {
return {
...state,login: action.login,password: action.password
}
}
default: return state;
}
}
export const SetFormData = (login,password) => ({
type: 'SET-FORM-DATA',login,password
})
export default formReducer;
那个 formReducer 通常在 redux-store 中赋值
import { applyMiddleware,combineReducers,createStore } from 'redux';
import authReducer from './auth-reducer';
import dialogsReducer from './dialogs-reducer';
import profileReducer from './profile-reducer';
import usersReducer from './users-reducer';
import thunkMiddleware from 'redux-thunk';
**import formReducer from './form-reducer';**
let reducers = combineReducers({
profilePage: profileReducer,dialogPage: dialogsReducer,usersPage: usersReducer,auth: authReducer,form: formReducer
})
let store = createStore(reducers,applyMiddleware(thunkMiddleware));
window.store = store;
export default store;
我在提交表单时调用这个动作创建者:
const onSubmit = formData => {
props.SetFormData(formData.Login,formData.password)
}
这个电话似乎是,幸运的是工作正常
解决方法
我是巴西人,因此我会说葡萄牙语,但我会使用翻译来帮助您。
我不太明白这个问题,但要处理 redux,我们必须使用 dispatch
。您没有使用它,您只是在传递 redux 值。对不起,如果我弄错了,但我使用的是这样的:
import { createTypes } from "reduxsauce";
export const gradesTypes = createTypes(
`
SET_GRADES
RESET_STATE
`,{ prefix: "GRADES/" }
);
const setGrades = (grades) => {
return (dispatch) => dispatch({ type: gradesTypes.SET_GRADES,grades });
};
const resetState = () => {
return (dispatch) => dispatch({ type: gradesTypes.RESET_STATE });
};
export const gradesActions = {
setGrades,resetState,};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。