reactjs - Typescript ESLint 错误 - 使用反应功能组件时如何键入子项?
问题描述
我正在整理以下样板样本:
- React 16.x(来自 create-react-app)
- 打字稿
- 带功能组件
- 材质-UI
- Mobx-反应
- 通过上下文提供者
- ESLint
我几乎已经解决了所有问题,但我似乎无法弄清楚我得到的这个 ESLint 错误。我有一个看起来像这样的 MobX 商店提供程序
import { useLocalStore } from 'mobx-react';
import React from 'react';
import { StoreType } from '../Types/StoreType';
import { StoreContext } from './StoreContext';
export const StoreProvider = ({ children }) => {
const store = useLocalStore(() => ({
loginStore: { email: ['neil.peart@rush.yyz'] },
applicationStore: { firstName: 'neil', lastName: 'peart' }
})) as StoreType;
return <StoreContext.Provider value={store}>{children}</StoreContext.Provider>;
};
我收到错误消息:
6:30 警告缺少函数 @typescript-eslint/explicit-function-return-type 上的返回类型
6:33 道具验证反应/道具类型中缺少错误“孩子”
如果你想把整个事情拉下来,你可以在这里:https ://github.com/Savij/functional-react-mobx-material
欣赏任何见解!-J
解决方案
StoreProvider
您的示例中的返回类型是 a React.ReactElement
,可以这样设置:
export const StoreProvider = ({ children }): React.ReactElement => {
return ...
}
源代码中的类型children
也是React.ReactElement
,但必须包装在接口中,因为它作为组件 props 的属性传入。
export const StoreProvider = ({ children }: StoreProviderProps): React.ReactElement => {
return ...
}
interface StoreProviderProps {
children: React.ReactElement;
}
推荐阅读
- jenkins - 从活动选择参数动态调用函数,参数不起作用
- reactjs - 在功能组件中设置状态。(对象中的数组中的对象)
- php - cPanel 中的敏感文件存储在哪里?
- json - NoSuchMethodError:类'_InternalLinkedHashMap
' 没有具有匹配参数的实例方法 'cast' - javascript - 基于 HTML 表单检查来自 JavaScript 的重复项的 Google Sheets JSON
- laravel - 如何在 Laravel7 中更新图片 Summernote?
- python - 查找列表中值大于常量的第一个元素
- pygame - 有没有办法创建一个时间限制,一旦达到时间就会导致 pygame 关闭?
- web-audio-api - 如何在javascript中停止麦克风
- r - 如果数值变量 > 或 < 0.5,如何将数值变量更改为 YES,NO?