Ok, tengo este ejemplo muy básico de estado redux
const initialState = { good: 0, ok: 0, bad: 0, }; const counterReducer = (state = initialState, action) => { console.log(action); console.log(state); console.log(initialState); console.log(state.good); switch (action.type) { case "GOOD": return { ...state, good: good + 1 }; case "OK": return { ...state, ok: ok + 1 }; case "BAD": return { ...state, bad: bad + 1 }; case "ZERO": return state; default: return state; } }; export default counterReducer;Estoy tratando de cambiar solo una propiedad del objeto de estado en una función onclick llamada así
const store = createStore(reducer); const App = () => { const addGood = () => { store.dispatch({ type: "GOOD", }); }; const addBad = () => { store.dispatch({ type: "BAD" }); }; const addOk = () => { store.dispatch({ type: "OK" }); }; return ( <div> <button onClick={addGood}>good</button> <button onClick={addOk}>ok</button> <button onClick={addBad}>bad</button> <button>reset stats</button> <div>good {store.getState().good}</div> <div>ok {store.getState().ok}</div> <div>bad{store.getState().bad}</div> </div> ); }; const renderApp = () => { ReactDOM.render(<App />, document.getElementById("root")); }; renderApp(); store.subscribe(renderApp);pero cuando trato de cambiar el valor de cualquiera de las propiedades, no funciona, por ejemplo, bueno, está bien, mal, pero falla mi aplicación si lo hago con el error bueno no está definido
Tienes que reemplazar good: good + 1 con good: state.good + 1 . Del mismo modo, para otro estado, haz estos cambios. state.{property} devuelve el valor actual de esa propiedad en el estado antes de ser actualizado.