Reactjs 反应上下文不保存更新
我为音乐/艺术家创建了一个react项目 我使用React上下文跨组件访问艺术家数据:Reactjs 反应上下文不保存更新,reactjs,ionic4,react-context,react-functional-component,Reactjs,Ionic4,React Context,React Functional Component,我为音乐/艺术家创建了一个react项目 我使用React上下文跨组件访问艺术家数据: import React, { createContext, useState } from "react"; export const ArtistContext = createContext(null); const ArtistContextProvider = props => { const [artists, setArtists] = useState([]); c
import React, { createContext, useState } from "react";
export const ArtistContext = createContext(null);
const ArtistContextProvider = props => {
const [artists, setArtists] = useState([]);
const addArtist = new_artist => {
setArtists([...artists, new_artist])
};
return (
<ArtistContext.Provider value={{artists, addArtist}}>
{props.children}
</ArtistContext.Provider>
);
};
export default ArtistContextProvider;
如果我在addArtister方法中登录,我可以看到Artister对象是有效的,但是如果我再次登录Artisters数组,它具有初始值
我尝试过不同的方法和语法,比如带有state的类组件、带有useState的函数组件。。。所以我猜我的语法是正确的,但是我缺少了一些关于React的关键概念。
这是我使用React的第一个项目,因此我可能遗漏了一些内容,但即使在阅读了上下文文档之后,我也无法找到它。您需要将状态/上下文对象存储到本地存储、会话存储、cookie或服务器,因为访问不同的url路径会刷新页面 此链接可帮助您在刷新页面时存储状态。 今天刚遇到这个。我花了2天时间来解决这个lol
const { artists, addArtist } = useContext(ArtistContext);
useIonViewWillEnter(() => {
api.get('artists?manager=1'))
.then(function(response) {
artist = response.data.items[0];
addArtist(artist);
window.location.href = '/artist/' + artist.id + '/tabs';
})
.catch(error => console.log(error));
});