react-native:使用setState更新对象的值

时间:2019-06-11 02:48:48

标签: javascript reactjs react-native

我正在尝试使用if (#available(iOS 10.0, *) { return [NSLocale currentLocale].languageCode; } else { return nil; } 来更新object's value

在我的代码中,我尝试将setState更新为Date,并更新其他值,例如2019-06-22

我的代码:

{dots: [vacation, massage, workout], selected: true}

这会给我一个错误。我认为我的代码还可以,但是不知道出了什么问题。

任何建议或评论将不胜感激! 预先感谢!

感谢@ bkm412我有解决方案:

this.setState(({pressedDate}) => ({
  pressedDate: {
     ...pressedDate,
      Date:'2019-06-22', :
      {
        dots: [vacation, massage, workout], selected: true
      }
   },
  }))

2 个答案:

答案 0 :(得分:3)

this.setState(({pressedDate}) => ({
  pressedDate: {
     ...pressedDate,
      ['2019-06-22'] :
      {
        dots: [vacation, massage, workout], selected: true
      }
   },
  }))

如果要使用变量


const newDate = 'any date';
this.setState(({pressedDate}) => ({
  pressedDate: {
     ...pressedDate,
      [newDate] :
      {
        dots: [vacation, massage, workout], selected: true
      }
   },
  }))

答案 1 :(得分:2)

您希望将Date更新为2019-06-22,但是 我不知道您要更新为什么{dots: [vacation, massage, workout], selected: true},他没有密钥。

您可以尝试以下代码:

this.setState(({pressedDate}) => ({
  pressedDate: {
     ...pressedDate,
     Date:'2019-06-22',
     dots: [vacation, massage, workout],
     selected: true,
  },
}));