reactjs - 使用 React Hooks 进行依赖注入(inject)

标签 reactjs react-hooks

我发现依赖注入(inject)的最大好处是能够在组合根的一行中替换整个应用程序中服务的实现。

有没有办法使用 React 钩子(Hook)来做到这一点?

似乎当使用钩子(Hook)时,例如 useHook(),你紧紧地绑定(bind)到一个特定的实现,并且它是一个手动过程来查找和切换所有实现,而 useHooks() 出现在任意点则更加复杂组件。

我目前的解决方案是使用 React Context 使组合根可根据需要对所有内容可用,这似乎运行良好,但是由于许多吹捧 Hooks 作为 DI 框架,我想知道我是否错过了一些东西。

最佳答案

您可以使用 container pattern .创建一个容器,负责使用钩子(Hook)并将结果传递给组件。

const Component = (props) => {
    return <div>{ props.data }</div>;
};

const Container = (props) => {
    const data = useHook();

    return <Component data={data} />;
};

关于reactjs - 使用 React Hooks 进行依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61797060/

相关文章:

javascript - React - 使用状态之外的函数设置组件状态,这是错误的吗?

javascript - react 渲染/更新 Canvas

javascript - 对状态中的数组值进行计数时超出最大更新深度

javascript - 在 168 个对象的状态数组中使用 Map 时,React 卡住 1~2 秒

javascript - 如果不需要任何 Prop ,我应该用 React.memo() 包装我的所有组件吗?

reactjs - 使用 React hook useContext 避免不必要的重新渲染

javascript - 在 React 上使用 Jest 和 Enzyme 调用 clearInterval 的单元测试方法

javascript - 输入标签 onChange 返回未定义的值

reactjs - 类型 'value' 上不存在属性 'never' 。在 mui 中使用 useRef Hook 时

javascript - React Router 2 更高效的路由