如何将特定的 属性 传递给反应中的所有子组件?
How to pass particular property to all child components in react?
我绝对是 React 的初学者。我必须将特定的 属性 传递给 div 内的所有组件,而不是将它们传递给 individual,
例如,而不是这样做:
function App() {
return (
<div>
<Component1 props = {propObject}/>
<Component2 props = {propObject}/>
<Component3 props = {propObject}/>
</div>
);
}
我怎样才能实现这样的目标? :
function App() {
return (
<div props={propObject}>
<Component1 />
<Component2 />
<Component3 />
</div>
);
}
您可以使用 ThemeProvider:
function App() {
return (
<ThemeProvider props = {propObject}>
<Component1 />
<Component2 />
<Component3 />
</ThemeProvider >
);
}
React Context
提供了一种将值共享给子组件的方法,而无需通过树的每个级别显式传递 prop。
您需要从 react
导入 React.context
语法:
// context.js
import React, { createContext } from "react"
export const MyContext = React.createContext(null);
现在您需要创建此上下文的提供者,以将当前上下文值传递给下面的树。所以你需要用 React.Provider
.
包裹你所有的 child component
语法:
// MainComponent.js
import { MyContext } from "./context"
import { ChildComponent1, ChildComponent2, ChildComponent3 } from "./childcomponent"
const MainComponent = () => {
const myObject = {name: "John"}
return (
<MyContext.Provider props={myObject}>
<ChildComponent1 />
<ChildComponent2 />
<ChildComponent3 />
</MyContext.Provider>
)
}
现在 MainComponent
的所有子组件都可以访问由 MyContext.Provider
提供的 props
值。现在您可以简单地将这些值传递给您的子组件。
语法:
// childcomponent.js
import React, { useContext } from "react"
import { MyContext } from "./context"
export const ChilcComponent1 = () => {
const props = useContext(MyContext)
return (
<p>
My name is: {props?.key}
</p>
)
}
我绝对是 React 的初学者。我必须将特定的 属性 传递给 div 内的所有组件,而不是将它们传递给 individual, 例如,而不是这样做:
function App() {
return (
<div>
<Component1 props = {propObject}/>
<Component2 props = {propObject}/>
<Component3 props = {propObject}/>
</div>
);
}
我怎样才能实现这样的目标? :
function App() {
return (
<div props={propObject}>
<Component1 />
<Component2 />
<Component3 />
</div>
);
}
您可以使用 ThemeProvider:
function App() {
return (
<ThemeProvider props = {propObject}>
<Component1 />
<Component2 />
<Component3 />
</ThemeProvider >
);
}
React Context
提供了一种将值共享给子组件的方法,而无需通过树的每个级别显式传递 prop。
您需要从 react
React.context
语法:
// context.js
import React, { createContext } from "react"
export const MyContext = React.createContext(null);
现在您需要创建此上下文的提供者,以将当前上下文值传递给下面的树。所以你需要用 React.Provider
.
child component
语法:
// MainComponent.js
import { MyContext } from "./context"
import { ChildComponent1, ChildComponent2, ChildComponent3 } from "./childcomponent"
const MainComponent = () => {
const myObject = {name: "John"}
return (
<MyContext.Provider props={myObject}>
<ChildComponent1 />
<ChildComponent2 />
<ChildComponent3 />
</MyContext.Provider>
)
}
现在 MainComponent
的所有子组件都可以访问由 MyContext.Provider
提供的 props
值。现在您可以简单地将这些值传递给您的子组件。
语法:
// childcomponent.js
import React, { useContext } from "react"
import { MyContext } from "./context"
export const ChilcComponent1 = () => {
const props = useContext(MyContext)
return (
<p>
My name is: {props?.key}
</p>
)
}