当我在嵌套的 React 组件中调用作为 props 传递的函数时会发生什么?
What happens when I call a function passed as props in nested React components?
我想了解 React 中的嵌套 props 是如何工作的。
如果我有一个组件 A,它是组件 B 的父组件,而组件 B 是组件 C 的父组件。
A 给 B 一个 prop foo()
,B 给 C 从 A 那里得到的 prop foo()
我在 C 中调用 foo()
。会发生什么?
1)C 的 foo()
调用 B 的 foo()
,B 调用 A 的 foo()
2)C 的 foo()
与 A 的 foo()
行为相同,因为它是 A 的 foo()
假设在组件 A 中有一个函数 foo
foo(string) {
console.log(string)
}
并在 A
中渲染组件 B
并将 foo
作为道具传递
<ComponetB foo={this.foo}/>
B
也是一样
<ComponetC foo={this.foo}/>
并在组件 C
中调用
this.props.foo('hey')
这将调用组件 A
函数,这将生成一个 console.log('hey')
您可以将 foo
作为道具传递给您想要的组件数量,它将执行父组件 ( A
) 中的内容。
如果您要将某些内容传递给许多嵌套组件,您可以使用 React Context API。 Context API 会将一个值作为道具传递给您的所有子组件。您应该阅读文档以了解更多信息。
我想了解 React 中的嵌套 props 是如何工作的。
如果我有一个组件 A,它是组件 B 的父组件,而组件 B 是组件 C 的父组件。
A 给 B 一个 prop foo()
,B 给 C 从 A 那里得到的 prop foo()
我在 C 中调用 foo()
。会发生什么?
1)C 的 foo()
调用 B 的 foo()
,B 调用 A 的 foo()
2)C 的 foo()
与 A 的 foo()
行为相同,因为它是 A 的 foo()
假设在组件 A 中有一个函数 foo
foo(string) {
console.log(string)
}
并在 A
中渲染组件 B
并将 foo
作为道具传递
<ComponetB foo={this.foo}/>
B
<ComponetC foo={this.foo}/>
并在组件 C
中调用
this.props.foo('hey')
这将调用组件 A
函数,这将生成一个 console.log('hey')
您可以将 foo
作为道具传递给您想要的组件数量,它将执行父组件 ( A
) 中的内容。
如果您要将某些内容传递给许多嵌套组件,您可以使用 React Context API。 Context API 会将一个值作为道具传递给您的所有子组件。您应该阅读文档以了解更多信息。