我正在尝试创建一个名为hidden
字典的状态变量(例如:)[{'cutomkey1':'somevalue', 'customkey2':'somevalue'}]
。hidden 可以为空[{}]
。
在我的一种方法中,我想将一个项目推{'asd':'asd'}
送到隐藏状态变量并将它们相加。
我不断收到此错误:
输入'字符串[] | undefined' 不是数组类型。
我是typescript的新手,我不确定我是否正确设置了所有变量。这是我的代码(仅相关部分):
import React from 'react';
export type AppState = {
tickets?: Ticket[],
hidden?: Array<String>,
search: string;
}
export class App extends React.PureComponent<{}, AppState> {
state: AppState = {
search: '',
hidden: []
}
hideCard = (e: React.SyntheticEvent<EventTarget>) => {
let targ = e.target as HTMLElement
let parent = targ.parentElement as HTMLElement
let dict: Map<string, string> = new Map();
dict.set(parent.id, parent.id)
this.setState({
hidden: [...this.state.hidden, {dict}]
})
console.log(this.state.hidden)
parent.classList.add('hideTkt')
}
}
export default App;
新代码:
export type AppState = {
tickets?: Ticket[],
hidden?: Array<String> | undefined,
search: string;
}
export class App extends React.PureComponent<{}, AppState> {
state: AppState = {
search: '',
hidden: []
}
hideCard = (e: React.SyntheticEvent<EventTarget>) => {
let targ = e.target as HTMLElement
let parent = targ.parentElement as HTMLElement
let dict: Map<string, string> = new Map();
dict.set(parent.id, parent.id)
if (this.state.hidden) {
this.setState({
hidden: [...this.state.hidden, {dict}]
})
}
console.log(this.state.hidden)
parent.classList.add('hideTkt')
}
这是错误:
类型 '(String | { dict: Map<string, string>; })[]' 不能分配给类型 'String[]'。输入'字符串| { 字典:地图<字符串,字符串>;}' 不可分配给类型 'String'。输入 '{ dict: Map<string, string>; }' 不可分配给类型 'String'。对象字面量只能指定已知属性,而“字符串”类型中不存在“dict”。