setState({ ...state, ...{Item: newNames}});が①のエラーになったので
const newNames:Item = {
text:t,
isCheck: false,
};
のNamesに[]をつけて
const newNames:Item[] = {
text:t,
isCheck: false,
};
に直したらsetState({ ...state, ...{Item: newNames}});のエラーは消えたのですが下記(②)エラーが出てしまいました。
const newNames:Item[] = {
text: string,
isCheck: false,
};のname:nameが②のエラーになりました。
解決方法がわからず困っています。どうしたらいいでしょうか?
① Argument of type '{ names:Item; name: string; }' is not assignable to parameter of type 'SetStateAction<State>'. Type '{ names:Item; name: string;}' is not assignable to type 'State'. Types of property 'names' are incompatible. Type 'Item' is missing the following properties from type 'Item[]': length, pop, push, concat,
② Type '{text: string; isCheck: boolean; }' is not assignable to type 'Item[]'. Object literal may only specify known properties, and 'text' does not exist in type 'Item[]'.
const type Item= { text: string isCheck: boolean } interface NState { name: string; names:Item[]; } const Index:FC<Props> = () => { const [state, setState] = useState<NState>({ name: '', names: [], }); const onSubmit = (t: string) => { const newNames: Item = { text:t, isCheck: false, }; setState({ ...state, ...{Item: newNames}});
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/10 06:36