react-i18next - 使用 HOC 包装父级时反应子级
问题描述
我正在使用 React 16.8.6,并且具有以下结构:
page.js
<ParentComponent id="testData">
<ChildComponent value={data => data.text} />
</ParentComponent>
父组件.tsx
export default class ParentComponent extends React.PureComponent<IParentProps> {
...
render() {
const items = this.props.children;
<MiddleComponent items={items} />
}
}
父容器.ts
import { withTranslation } from 'react-i18next';
import ParentComponent from './ParentComponent';
export default withTranslation()(ParentComponent);
我需要知道每个孩子MiddleComponent
的元素类型内部(不是作为字符串,而是作为 React 元素,因为我将基于它创建一个新元素)(所以,在这种情况下我应该有ChildComponent
),但是当我检查时有了铬,我所有的孩子都有一种I18nextWithTranslation
类型......
知道如何解决这个问题吗?或者如果这可能是一个已知的错误?
如果我根本不使用任何 hoc,当我写child.type
它时它会返回 me ChildComponent(props)
。但是,当我使用 hocs 包装父级时,情况并非如此......
解决方案
这个问题非常愚蠢...
即使孩子没有作为默认值导出,我也将其<ChildComponent>
作为默认导入导入。
基本上
import ChildComponent from ''
代替import { ChildComponent } from ''
推荐阅读
- javascript - 试图在 HTML 棋盘上拼图
- git - Git:如何在没有分支或 git revert 的情况下用之前的提交替换当前工作目录?
- javascript - 如何将 vaadin-icon 导入 React 组件?
- javascript - 检查对象数组中是否存在所有键如果没有找到将其添加到数组中
- python - How to allow only admins to execute a command
- reactjs - React Redux - Getting state to component - Uncaught TypeError: users.map is not a function
- java - 如何通过命令行杀死特定的 Firefox 配置文件 [Java]
- c# - 无法加载实体框架不变名称“MySql.Data.MySqlClient”
- python - 使用 CSV 数据文件 Sklearn 的简单线性回归
- java - 'overridden method does not throw Exception' when use lambda with override exception thrown