これまでいくつかのテストプロジェクトでstateとsetStateを使用していましたが、今は新しいプロジェクトに取り組んでいます。this.state = new ProductDto("some product name");
エラー "Cannot convert type ProductDto to type {(): any;(): any}
"です。ReactJsでtypescriptを使用してsetStateを状態に割り当てる方法
とiもthis.setState(product);
を行うとき、私はエラーを取得:
Supplied parameter do not match any signature of call target because no overload accepts one parameters.Candidates are:
K<any>() => (void)
K<any>() => (void)
私のコードは次のようになります。
class ProductDto {
constructor(name?: string) {
this.name = name;
}
name: string;
}
class Product extends React.Component<any, ProductDto> {
constructor() {
super();
this.state = new ProductDto("some product name");
}
handleChangeProduct(product: ProductDto) {
this.setState(product);
}
...
}
私はtypescript: "^2.2.1", @types/react: "^15.0.13" and react": "^15.4.2"
を使用していますが、SETSTATEの定義はindex.d.tsでこのように見えますが
setState<K extends keyof S>(f: (prevState: S, props: P) => Pick<S, K>, callback?:() => any): void;
setState<K extends keyof S>(state: Pick<S, K>, callback?:() => any): void;
を提出します。
これらの作業をどのようにするかについてのヘルプは高く評価されます。ありがとうございます。
をReactがどのように状態を処理するかというと、非定型で問題の可能性があります...代わりに、インタフェースとオブジェクトリテラルを使用するだけです。おそらく '{product:ProductDto}'をあなたの国家として使うことができます。 – Aaron
'this.state'に明白なオブジェクトを提供します。 –
@Aaron私はまた、インターフェイスとオブジェクトリテラルを使用しようとしましたが、それは助けになりませんでした。 –