He estado tratando de agregar una clave a un estado dinámicamente en zustand. He intentado de varias maneras como
1.
const store = (set, get) => ({ keyAttrib: {key1: "value1", key2: 2}, update: (key, value) => { let newState = { ...get().keyAttrib, [key]: value }; set(newState); } }) const store = (set) => ({ keyAttrib: { key1: "value1", key2: 2 }, update: (key, value) => { set((state) => ({ keyAttrib: { ...state.keyAttrib, [key]: value } })); }, });pero ninguno de ellos parece estar funcionando.
El segundo ejemplo que proporcionó funciona perfectamente bien para mí:
const useStore = create((set) => ({ keyAttrib: {key1: "value1", key2: 2}, update: (key, value) => set((state) => ({ keyAttrib: { ...state.keyAttrib, [key]: value, }, })), }));Aquí están los códigos y el cuadro de trabajo (ignore cualquier estilo) donde puede agregar/actualizar pares clave-valor, el menú desplegable siempre actualizará la clave3. Si esto aún no ayuda, proporcione un ejemplo mínimo de trabajo en codesandbox.
Se necesita event.preventDefault() para evitar que el formulario actualice la página, lo que restablecerá su tienda Zustand con su valor inicial.