首页 > 解决方案 > 将列表项绑定到 this.state

问题描述

我有一个 Recact 组件定义为:

export default class App extends React.Component<AppProps, Items>

该类Items定义为:

export default class Items extends Array<Item>

而这Item只是一个具有一堆属性的类。

如果在render()我将列表直接绑定到我的Items对象,即。

<List items={myItems} onRenderCell={this._onRenderCell} />

列表显示正确,但是如果我this.setState(myItems)然后尝试将列表绑定到状态:

<List items={this.state} onRenderCell={this._onRenderCell} />

我得到编译时错误:

类型 'Readonly' 缺少类型 'any[]' 的以下属性:[Symbol.iterator]、[Symbol.unscopables]

我该如何解决?

标签: reactjstypescript

解决方案


我找到了一个简单的解决方案......我创建了一个新类型:

type ItemsState = {
    items: Items
}

然后更改我的组件以将其用作状态:export default class App extends React.Component<AppProps, ItemsState>


推荐阅读