useContext
是 React 中的一个 Hook,它允许组件订阅 React 的上下文(Context)。上下文提供了一种在组件树中传递数据的方式,而不必在每一层手动传递 props。当上下文的值发生变化时,使用 useContext
的组件会重新渲染。
createContext
和 useContext
。如果一个 React 组件未使用 useContext
重新呈现,可能的原因包括:
useContext
,如果上下文的值没有变化,组件也不会重新渲染。useContext
钩子订阅上下文。React.memo
或其他优化手段,导致即使上下文变化,组件也不会重新渲染。useContext
:useContext
:React.memo
,确保它不会阻止组件因上下文变化而重新渲染。React.memo
,确保它不会阻止组件因上下文变化而重新渲染。import React from 'react';
const MyContext = React.createContext();
function App() {
const [value, setValue] = React.useState('initial');
return (
<MyContext.Provider value={value}>
<ChildComponent />
<button onClick={() => setValue('updated')}>Change Value</button>
</MyContext.Provider>
);
}
function ChildComponent() {
const contextValue = React.useContext(MyContext);
return <div>{contextValue}</div>;
}
export default App;
在这个例子中,点击按钮会更新上下文的值,ChildComponent
会因为使用了 useContext
而重新渲染并显示新的值。
领取专属 10元无门槛券
手把手带您无忧上云