gpt4 book ai didi

javascript - react : Why isn't my context value updated?

转载 作者:行者123 更新时间:2023-12-03 21:08:17 26 4
gpt4 key购买 nike

我正在玩 React Context API。我创建了一个简单的组件:

import React, { createContext, useContext } from 'react';

const MyContext = createContext(1);

const MyComponent = () => (
<>
<p>{useContext(MyContext)}</p>
<MyContext.Provider value={2}>
<p>{useContext(MyContext)}</p>
</MyContext.Provider>
</>
);

export default MyComponent;
我得到了两个 <p>1</p> .为什么第二个上下文没有更新为 2 ?我在使用 useContext()不正确?

最佳答案

您必须使用单独的组件才能使 Context 正常工作。
我已经提交了一个关于这个的错误;见 https://github.com/facebook/react/issues/18629
只需使用 Context 将代码拆分为不同的组件。

const Inner = () => (
<p>{useContext(MyContext)}</p>
);

const MyComponent = () => (
<>
<p>{useContext(MyContext)}</p>
<MyContext.Provider value={2}>
<Inner />
</MyContext.Provider>
</>
);
那应该解决它。

关于javascript - react : Why isn't my context value updated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65496140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com