我对React很新,很抱歉,如果这是一个简单的问题。我有一堆组件,对于每个组件,我想为每个{b:this.constructor.displayName}指定一个初始状态(在构建classNames时使用“b”)。而不是在每个组件中的“getInitialState”初始状态中定义b,我想定义一些可重用的函数来在任何地方设置b。
从我早期的研究来看,似乎mixins可能很有希望。但是,我也读过mixins正在出路。做这个的最好方式是什么?提前谢谢!
答案 0 :(得分:2)
目前在React中执行此操作的方法是使用合成而不是mixins。组合物也称为"高阶组分"看起来有点像这样:
class Foo extends React.Component {
render() {
return <div>{ this.props.b }</div>;
}
}
const EmbedClassName = function(Child) {
var b = Child.constructor.displayName;
return (props) => <Child {...props} b={b} />;
};
var ComposedFoo = EmbedClassName(Foo);