1 回答
TA贡献1111条经验 获得超0个赞
听起来很适合使用Context。
这是一个虚构的示例,说明如何在较高级别设置客户端 ID,但在嵌套组件中引用它,而不必每次使用Hooks查询 Redux 存储:
应用程序
const ClientContext = React.createContext(null);
function App(props) {
return (
<ClientContext.Provider value={props.clientId}>
<MyApiComponent />
</ClientContext>
)
}
const mapStateToProps = getState => ({
clientId: getState().clientId
})
export default connect(mapStateToProps, {})(App);
所以我们只需要连接App到 store 来检索客户端 ID,然后使用Context我们可以让嵌套组件访问这个值。我们可以利用useContext将该值拉入每个组件
function MyApiComponent() {
const clientId = useContext(ClientContext);
...
return <MyNestedApiComponent />;
}
function MyNestedApiComponent() {
const clientId = useContext(ClientContext);
...
}
无论您使用的是函数还是类组件,原理都是一样的——Context用于共享全局状态到嵌套组件。
添加回答
举报