我见过多个使用Typescript的React组件示例:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++组件
当我们不使用道具或国家时,似乎没有一个明确的惯例。
人们将这些类型设置为any
,null
,undefined
,{}
,
,等等。这是我到目前为止看到的:void
类Foo扩展了React。组成部分
最好的方法是什么?
更新:
>
void
无法使用(https://github.com/Microsoft/TypeScript/issues/15409和https://github.com/Microsoft/TypeScript/issues/15419)作为道具对象初始化为{}
解决方案
只需执行-
类Foo扩展React。组件{}
作为prop和state被初始化为{}
根据本指南和我的经验,我想说:
类Foo扩展React。组件
欢迎其他意见
如对该问题的回答,您可以使用React。常设费用
const MyStatelessComponent : React.FC<{}> = props =>
<div>{props.children}</div>
或者如果您的标记变得更大:
const MyStatelessComponent : React.FC<{}> = props => {
{/* Some code here */}
return <div>{props.children}</div>
}
从https://github.com/DefinitelyTyped/DefinitelyTyped/blob/15b7bac31972fbc081028937dfb1487507ca5fc9/types/react/index.d.ts#L199-L200
interface Component<P = {}, S = {}> extends ComponentLifecycle<P, S> { }
道具和状态初始化为{}
,因此对于没有状态或道具的组件,我们可以简单地执行以下操作:
class Foo extends React.Component {}
问题内容: 我不知道我是否正确地执行了操作…如果要从输入中获取值,请使用this.refs.whatever.value.trim(),但是如果该输入是无状态函数组件,我该怎么办检索值onSubmit? 我知道这在研究之后是不正确的,但是您应该如何从这些输入字段中获取价值? 这是无状态输入字段 问题答案: 编辑:看起来这不再是问题,因为自编写此答案以来出现了有关如何处理这种情况的新想法。请参阅in
我收到警告“警告:失败的道具类型:提供给的类型为
我已经用ReactJS和ES6进行了几天的实验,并创建了两个组件,即
我有一个组件,根据其大小接收道具。道具可以是字符串或数字,例如:或。 我能让知道这可以是PropTypes验证中的一个或另一个吗? 如果未指定类型,则会收到警告: prop type无效;它必须是一个函数,通常来自React。道具类型。
我有反应代码