javascript - Can the default value of a Recoil atom be an object? - Stack Overflow

Can I set the default value of a Recoil atom to be an object?e.g.:export const currentUserState = ato

Can I set the default value of a Recoil atom to be an object?

e.g.:

export const currentUserState = atom({
  key: 'currentUserState',
  default: { name: '', email: '', userId: null },
});

And then set it with:

import { currentUserState } from '../atoms/atoms';

const setUserState = useSetRecoilState(currentUserState);
setUserState(name: 'John', email: '[email protected]', userId: getRand());

Can I set the default value of a Recoil atom to be an object?

e.g.:

export const currentUserState = atom({
  key: 'currentUserState',
  default: { name: '', email: '', userId: null },
});

And then set it with:

import { currentUserState } from '../atoms/atoms';

const setUserState = useSetRecoilState(currentUserState);
setUserState(name: 'John', email: '[email protected]', userId: getRand());
Share Improve this question edited Jul 24, 2021 at 20:47 Yoav Kadosh 5,1754 gold badges43 silver badges58 bronze badges asked Oct 17, 2020 at 19:44 Kirk RossKirk Ross 7,16315 gold badges67 silver badges125 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 4

Yes, It is allowed. Recoil atom state can be an object. You have initialized the atom correctly, but when you set the atom you have to pass an object since the state is object.

Initialize the currentUserState atom

export const currentUserState = atom({
  key: 'currentUserState',
  default: {name: '', email: '', userId: null}
});

and then set the atom state as follows

import {currentUserState} from '../recoilstate/atoms';

const setUserState = useSetRecoilState(currentUserState);

setUserState({
  name: 'John', 
  email: '[email protected]', 
  userId: getRand()
});

Yes, a Recoil atom can be an object.

I have written this code, which you can see below in the working demo.

 const changeValue = () => {
    setUserState({ name: "John", email: "[email protected]", userId: Math.random() });
  };

Working Demo

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742295433a4417021.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信