【发布时间】:2020-09-28 14:43:38
【问题描述】:
出于学习目的,我只是尝试呈现这个愚蠢的示例,其中组件A 有一个创建随机数的变量,而另一个(不相关的)组件B 可以使用useContext 呈现它。我不知道如何让上下文的提供者知道该值是来自组件A的变量。
我创建了另一个文件来执行React.createContext()... 但仍然不知道如何使随机数到达那里或App 组件来执行提供程序。我知道我可以在App 组件中创建随机数并提供我想要的具有该值的任何组件,但我只想在组件A 中生成该值并到达组件B。有任何想法吗?也许它太简单了我看不到。
我现在拥有的:
组件 A:
import React from'react';
export default function RandomNumGenerator() {
const randomNum = Math.random();
return(
<h2>Your random number is:</h2>
)
}
组件 B:
import React from'react';
export default function RandomNumRenderizator() {
return(
<h2></h2> //Want to render the random num here
)
}
应用组件:
import React from 'react';
import RandomNumGenerator from "./FunctionalComponents/RandomNumGenerator/RandomNumGenerator";
import RandomNumRenderizator from "./FunctionalComponents/RandomNumRenderizator/RandomNumRenderizator";
import RandomNumContext from "./contexts/RandomNumContext";
export default function App() {
return (
<div>
<RandomNumGenerator/>
<RandomNumContext.Provider value={}> //Empty value as I don't know what to send
<RandomNumRenderizator/>
</RandomNumContext.Provider>
</div>
);
}
还有上下文:
import React from "react";
const RandomNumContext = React.createContext(); //Don't know if there should be anything as defaultValue
export default RandomNumContext;
【问题讨论】:
-
上下文不能这样工作。您需要传递可用于任何子级的值。如果你需要上下文。让我知道将更新您的示例
-
是的,我知道。但是,如果它是在组件中生成的,我不希望它在 App 组件中生成,我该如何传递?
标签: javascript reactjs react-hooks use-context