Reactjs 如果构造函数方法中的react-typescript具有特定的接口类型,我们如何在其中初始化状态
我有以下代码:其中我有一个状态的接口类型。如何在构造函数方法中初始化它。因为它不允许我初始化为string/null/numberReactjs 如果构造函数方法中的react-typescript具有特定的接口类型,我们如何在其中初始化状态,reactjs,typescript,react-native,Reactjs,Typescript,React Native,我有以下代码:其中我有一个状态的接口类型。如何在构造函数方法中初始化它。因为它不允许我初始化为string/null/number interface IState{selectedUser?:IUserMenu} 类AssignUser扩展React.Component{ 建造师(道具:IProps){ 超级(道具); 此.state={ selectedUser:“我必须在此处放置的内容”}} 这是什么意思 this.state={} 在构造函数中是什么意思 IUserMenu是一个接口,因
interface IState{selectedUser?:IUserMenu}
类AssignUser扩展React.Component{
建造师(道具:IProps){
超级(道具);
此.state={
selectedUser:“我必须在此处放置的内容”}}
这是什么意思
this.state={}
在构造函数中是什么意思
IUserMenu是一个接口,因此我无法初始化为数字“”,null
我唯一可以使用的是
undefined
您的IState接口指定它有一个名为selectedUser
的属性,该属性是可选的(因为它后面有一个?)
如果您确实提供了一个selectedUser
,则它必须是IUserMenu
类型。所以你的我要放在这里的是一个符合IUserMenu
界面的对象
this.state={}表示使用大括号中定义的对象初始化状态。在您的情况下,大括号中定义的对象必须与IState接口匹配(因此包含一个名为selectedUser
的属性,该属性是IUserMenu
类型的未定义的)Hi@ankitjayaprakash
我举了一个例子,在这个例子中,我正在初始化接口中描述的要传递的对象(但不是可选的)
你可以看到
“this.state={}”在构造函数中的作用只是初始化该组件的状态,即使它可以在没有任何生成器函数的情况下退出。我使用选择器道具中的selectedUser状态selectedUser
,但我需要在构造函数中初始化此状态,但我的值是一个对象。在这种情况下,我应该初始化为什么?IUserMenu界面看起来像什么?这些类型中有一种是作为道具传入的吗?interface IUserMenu{name:string;姓氏:string;}
好吧,我觉得初始化任何东西都没有意义。。。您可以这样做:this.state={selectedUser:undefined}
或者根本不用在构造函数中设置状态,或者,您甚至可以这样初始化它:this.state={selectedUser:{name:,姓氏:}
Type'null'不能分配给Type'IUserMenu | undefined'。我得到这个错误它对我来说没有任何错误的一部分,但如果你想更好地打开一个代码沙盒或StackBlitz和复制所有的代码。这样我们可以更好地帮助您。感谢@fg93的努力,我可以工作,但我得到了TSLint的建议。那很好。感谢构造函数中的this.state={}
调用设置组件的初始状态。如果您没有state的初始值,可能只需传递this.state={}
。selectedUser
——您的界面表明它是可选的。