我试图在TypeScript中编写一个React无状态函数组件。请参见以下代码:
import * as React from 'react';
import {observer} from 'mobx-react';
export interface LinkProps {
view: any;
className: any;
params?: any;
queryParams?: any;
store?: any;
refresh: boolean;
style?: any;
children: any;
title?: any;
router: any;
}
const Link: React.SFC<LinkProps> = ( // <----- Error on this line
{
view,
className,
params = {},
queryParams = {},
store = {},
refresh = false,
style = {},
children,
title = children,
router = store.router
}) => {
...
}
export default observer(Link);
然而,编译器在const Link上给了我一个错误:
src/components/Link。tsx(17,7):错误TS2322:Type“({view,className,params,queryParams,store,refresh,style,children,title,router}:LinkPr…”不可分配给类型“无状态组件”。类型“void | Element”不可分配给类型“ReactElement”。类型“void”不可分配给类型“ReactElement”。
我做错了什么?
以下是我的pckage中的版本依赖项。json文件:
"@types/react": "^16.0.29",
"@types/react-dom": "^16.0.3",
"del-cli": "^1.1.0",
"mobx": "^3.4.1",
"mobx-react": "^4.3.5",
"react": "^16.2.0",
"typescript": "^2.6.2"
提前感谢!
只需删除LinkProps界面中的孩子。我认为你应该读一下这个
玩得开心。
如果不返回JSX元素,就会发生这种情况。此外,如果您返回一个返回JSX元素的函数,那么问题也会发生。为了避免这个问题,您可以返回
<React.Fragment>
{yourFunction()}
</React.Fragment>
在React中,我编写了一个无状态功能组件,现在想向其添加Prop类型验证。 组件: 组件,渲染: 正如你在中看到的,我正在传递至。因为是一个字符串,我希望道具类型验证能够生效。相反,我在浏览器控制台中得到一个错误,因为字符串没有名为的方法。 为什么道具类型验证没有按预期工作?看看这个问题,情况似乎是一样的。
所以我看到它找不到promise和地图。
我正在尝试为现有的无状态 React 组件套件创建类型定义,这样我就可以自动生成文档并改进团队工具中的智能感知。 组件示例如下所示: 我的组件.js 我希望我的类型定义为: 定义哪些道具是允许的(哪些是必需的) 它将返回JSX 查看这个使用TypeScript创建React组件的示例,我发现了类型:< code>React。SFC。 我试着在我的定义中使用这个: 索引.d.ts 但是我收到 我对T
在我的React JS项目中,我正在处理。我已经通过了使用进行私有路由和身份验证的示例。 https://reacttraining.com/react-router/web/example/auth-workflow 根据这个留档,他们创建了一个作为无状态组件。 但我的要求是将其转换为有状态的React组件,因为我想将我的组件连接到redux存储。 这是我的代码。 无状态组件 我将这个组件转换成
问题内容: 我有正常路线 使用from 。 奇怪的是,这个组件很长一段时间都没有出现问题,但是现在当我用说的时候,它无法在travis- ci上编译 我在我的PrivateRoute组件中设置了此状态,这是带有重定向的非常标准的 如何更新要包含的对象的类型 编辑: 解决方案是添加 复制package.json之后,将其复制到我的Dockerfile中。 问题答案: 看起来您没有对软件包使用锁定文件
每个人都说它使用组件将提高应用程序的性能。然而,我注意到,在错误的地方使用无状态组件确实会降低应用程序的性能。 无状态组件: