我有多个组件都需要做同一件事。(一个简单的函数可以映射其子组件,并对每个子组件执行某些操作)。目前,我正在每个组件中定义此方法。但是我只想定义一次。
我可以在顶级组件中定义它,然后将其作为道具传递。但这并不完全正确。它更多的是库函数而不是道具。(在我看来)。
正确的做法是什么?
我有多个组件都需要做同一件事。(一个简单的函数可以映射其子组件,并对每个子组件执行某些操作)。目前,我正在每个组件中定义此方法。但是我只想定义一次。
我可以在顶级组件中定义它,然后将其作为道具传递。但这并不完全正确。它更多的是库函数而不是道具。(在我看来)。
正确的做法是什么?
除了创建util文件之外,另一个可靠的选择是使用更高阶的组件来创建withComponentMapper()
包装器。该组件将一个组件作为参数,并componentMapper()
通过传递为prop 的函数将其返回。
在React中,这被认为是一种好习惯。您可以在此处详细了解如何操作。
您不应该为此使用Mixin吗?参见https://facebook.github.io/react/docs/reusable-components.html
尽管他们失宠了,请参见https://medium.com/@dan_abramov/mixins-are-dead-long-live-higher-order-components-94a0d2f9e750
可能有用