#javascript #reactjs #recoiljs
#javascript #reactjs #recoiljs
Вопрос:
Могу ли я установить значение по умолчанию для атома отдачи как объект?
например:
export const currentUserState = atom({
key: 'currentUserState',
default: { name: '', email: '', userId: null },
});
А затем установите его с помощью:
import { currentUserState } from '../atoms/atoms';
const setUserState = useSetRecoilState(currentUserState);
setUserState(name: 'John', email: 'foo@bar.com', userId: getRand());
Ответ №1:
Да, это разрешено. Состояние атома отдачи может быть объектом. Вы правильно инициализировали атом, но когда вы устанавливаете атом, вам нужно передать объект, поскольку состояние является объектом.
Инициализировать currentUserState
атом
export const currentUserState = atom({
key: 'currentUserState',
default: {name: '', email: '', userId: null}
});
а затем установите состояние атома следующим образом
import {currentUserState} from '../recoilstate/atoms';
const setUserState = useSetRecoilState(currentUserState);
setUserState({
name: 'John',
email: 'foo@bar.com',
userId: getRand()
});
Комментарии:
1. Как насчет слияния предыдущего пользовательского состояния с оператором распространения и изменения части свойства на новое значение? Как изменить состояние в селекторе вместо этого с помощью setState?