【发布时间】:2021-03-24 17:28:02
【问题描述】:
即使我在上下文文件中将状态设置为 null,我也无法清除上下文。谁能告诉我我的代码有什么问题?这是我的代码:
import React, { createContext, useState } from 'react';
export const MembersContext = createContext([{}, () => {}]);
export const MembersProvider = ({ children }) => {
const [members, setMembers] = useState(null);
const refreshMembers = async () => {
try {
const data = await request('api/members');
setMembers(data);
} catch (error) {
console.log('ERROR: ', error);
}
};
const clearMembers = () => {
setMembers(null);
console.log('CLEARED MEMBERS IN CONTEXT FILE', members); // not cleared
};
return (
<MembersContext.Provider
value={{
members,
clearMembers,
}}
>
{children}
</MembersContext.Provider>
);
};
然后在我的退出页面中,我有一个使用清除上下文功能的按钮:
import React, { useContext } from 'react';
import {
Button,
} from 'react-native';
import { MembersContext } from '../MembersContext';
const Settings = () => {
const { clearMembers, members } = useContext(MembersContext);
const clearContext = () => {
clearMembers();
console.log('CLEARED MEMBERS?: ', members); // not cleared
//logout()
};
return (
<Button onPress={()=> clearContext()}>Log Out</Button>
);
};
export default Settings;
我的控制台日志和屏幕仍然显示上一个会话的数据。
【问题讨论】:
-
嗨,Jae。你能把这个上传到codesandbox吗?
标签: reactjs react-native