在编写将状态项添加到不同数组的函数时遇到麻烦

时间:2018-06-28 18:29:53

标签: javascript reactjs react-native

我正在尝试创建一个函数,该函数允许我向 处于本地状态的数组。我可以创建几个功能 可以满足状态中的每个数组,但是我感觉就像 应该只需要一个执行此操作的功能即可。我的方式 这样做是行不通的。我可能需要退后一步,重新考虑 但我希望能找到一些方法使之工作。

谢谢!

this.state = {
  category1: [],
  category2: []
}

addItem(category, type){
  this.setState({
    category: [...this.state.category, type]
  })
}

listsOfItems.types.map((type, i) => (
  <ListItem 
    onPress={ () => this.addItem(category1, type)}
  />
))

listOfOtherItems.types.map((type, i) => {
  <ListItem
    onPress={ () => this.addItem(category2, type)}
  />
})

1 个答案:

答案 0 :(得分:1)

在这种情况下,我认为重复并不是那么糟糕,但是如果您真的想将其概括化,则可以使用computed property name

this.state = {
  category1: [],
  category2: []
}

addItem(category, type){
  this.setState({
    [category]: [...this.state[category], type]
  })
}

listsOfItems.types.map((type, i) => (
  <ListItem 
    onPress={ () => this.addItem('category1', type)}
  />
))

listOfOtherItems.types.map((type, i) => {
  <ListItem
    onPress={ () => this.addItem('category2', type)}
  />
})