我正在尝试创建一个名为的状态变量hidden
成为一本字典(例如:[{'cutomkey1':'somevalue', 'customkey2':'somevalue'}]
)。隐藏可以为空[{}]
.
在我的一种方法中,我想推送一个项目{'asd':'asd'}
到隐藏状态变量并将它们相加。
我不断收到此错误:
输入“字符串[] | undefined' 不是数组类型。
我是打字稿新手,我不确定我是否正确设置了所有变量。这是我的代码(仅相关部分):
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”。
输入 '{ dict: Map; }' 不可分配给类型“String”。
对象字面量只能指定已知属性,并且“String”类型中不存在“dict”。