javascript - 在 React 中的组件之间使用钩子共享辅助函数
问题描述
当您想要创建简单的帮助器并将其导入其他组件时,案例很简单。例子:
const exampleFoo = ({numberFromProps}) => {
const {exampleNumber} = exampleApi.getNumber();
const sum = exampleNumber + numberFromProps;
return sum;
};
export default exampleFoo;
但是当我想使用数据时问题就开始了,例如表单上下文(这是不正确的,不可能使用不是 React 组件或 React 钩子的钩子):
import {useContext} from 'react';
import AppContext from './AppContext';
const exampleFoo = ({numberFromProps}) => {
const {numberFromContext} = useContext(AppContext);
const sum = numberFromContext + numberFromProps;
return sum;
};
export default exampleFoo;
我考虑的解决方案:
- 作为道具传递
numberFromContext
- 这个工作正常。但是当涉及到将这个功能扩展到更大的东西时,传递许多道具可能会让人不知所措。例子:
const exampleFoo = ({numberFromProps, numberFromContext}) => {
const sum = numberFromContext + numberFromProps;
return sum;
};
export default exampleFoo;
- 使用 HOC 包装每个父组件 - 对于小型辅助功能来说似乎有点过分了。你怎么看?
- 自定义钩子 - 在这里不起作用,因为我需要
exampleFoo
在父函数内部使用。
主要问题:在组件之间共享功能是否有不同的方式(与第 1 点和第 2 点中提到的不同)?
解决方案
推荐阅读
- unity3d - Unity Video Player如何获取当前显示的帧?
- cygwin - .txt 文件中变量的 Grep 压缩文件
- android-studio - Flutter Android studio 使用所有内存
- amazon-web-services - 在 aws lambda 中重试外部 API 超时
- go - 使用 go 通道使结构线程安全
- sql-server - 如果子查询没有返回行,则返回 0 否则返回子查询的值
- python - 为什么我的 Windows 10 上的 pip 和 pip3 都指向同一个 Python 3.8.1 安装?
- c++ - 如何使用带有聚合初始化的 std::array 定义向量类?
- angular - Angular 和移动 Angular UI 入门
- python - 在 Slurm 中激活虚拟环境时的 Python 输出