![](/img/trans.png)
[英]TypeScript error Argument of type '(response) => void' is not assignable to parameter of type '(value: void) => void | PromiseLike<void>'
[英]TypeScript error when setting a component's state: Argument of type 'X' is not assignable to parameter of type '() => void'
这就是我实际在做的事情:
updateRequests(requests: any, cb:Function|null = null) {
this.setState(
{
requests: {
...this.state.requests,
items: requests,
loading: false,
},
},
() => {
if (cb) cb();
}
);
这是一个组件状态:
export interface IServersScreenState {
requests: {
items: [];
loading: boolean;
statuses: {};
page: number;
lastPage: number;
scrollLoading: boolean;
};
}
实际上不明白为什么会这样,因为我在状态中没有任何声明, requests
需要看起来像()=>void
这是我的setState:
setState<T>(...args: T[]) {
if (this.__mounted__) {
//@ts-expect-error spread error
super.setState(...args) as $TSFixMe;
}
}
您已将 setState 定义为接受泛型,然后在调用泛型时不填写该泛型。 尝试更换
this.setState(
和
this.setState<IServersScreenState>(
这应该让您更接近于遵循您设置的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.