您可以使用 React 的内置功能Context API
,尽管我不建议您过分依赖它,因为这可能会被弃用或成为一个完整的稳定功能。截至目前,Facebook 在其文档WARNING 中警告用户。没有那个小问题,API 非常棒,有助于维护整洁的代码,而无需一直将 props 发送给预期的后代。
上下文API
组件 1
class Component1 extends React.Component {
getChildContext() {
return {
yourProp: "someValue" // you can also add a function like yourProp: someFunc
};
}
render() {
<Component2 />
}
}
Component1.childContextTypes = {
yourProp: PropTypes.string
};
组件 2
class Component2 extends React.Component {
render() {
return (
<Component3 />
);
}
}
组件 3
class Component3 extends React.Component {
render() {
return (
<Component4 />
);
}
}
组件4
class Component4 extends React.Component {
render() {
return (
<div>
{this.context.yourProp}
</div>
);
}
}
Component4.contextTypes = {
yourProp: PropTypes.string
};
如果您不选择使用它,则有很多策略。