3 回答
TA贡献1784条经验 获得超2个赞
见钩子规则:
只在顶层调用钩子
不要在循环、条件或嵌套函数中调用 Hook。相反,始终在 React 函数的顶层使用 Hook。通过遵循此规则,您可以确保每次渲染组件时以相同的顺序调用 Hook。
因此,使用useContexthook 来创建一个新的消费组件是一种很好的做法。
const ColorContext = createContext('red');
const Button = () => {
const value = useContext(ColorContext);
return (
<button style = {{backgroundColor: value}}
>
{value}
</button>
);
};
const App = (props) => {
return (
<div className="app">
<ColorContext.Provider value={'blue'}>
<Button />
</ColorContext.Provider>
</div>
)
};
TA贡献1796条经验 获得超7个赞
您需要App使用上下文包装组件。
const App = (props) => {
return (
<div className="app">
<button
style = {{backgroundColor: useContext(ColorContext)}}
>
Click here
</button>
</div>
)
}
render(<ColorContext.Provider value= {'green'}><App /></ColorContext.Provider>, document.getElementById('root'));
添加回答
举报