【发布时间】:2023-02-05 11:47:51
【问题描述】:
如何放置导出的函数(在上下文中)并在 useEffect 中接收参数,以便该函数中的 setState 不会导致无限重新渲染。
功能:
export const PokemonProvider = ({children} : {children: ReactNode}) => {
const [pokemon, setPokemon] = useLocalStorage<Pokemon[]>('pokemon', [{id: 123, name: 'mariomon', type: 'fogo', imageUrl: 'www.google.com'}]);
const getPokemon = (newlyPokemon : Pokemon | null) => {
newlyPokemon && setPokemon(prevState => [...prevState, newlyPokemon]);
};
return <PokemonContext.Provider value={{getPokemon, pokemon}}>
{children}
</PokemonContext.Provider>
}
getPokemon 可能是这里的问题,即使我对 React 的了解有限,如果我使用 useCallback 例如如何访问 newPokemon?我应该使用 useRef 并在 getPokemon 上为它分配 newPokemon 值,然后在 useEffect 中为它分配 setPokemon 吗?
需要帮助,谢谢!
【问题讨论】:
标签: reactjs react-hooks react-tsx