Есть ли установить индекс массива данных в this.setState? - PullRequest
0 голосов
/ 11 апреля 2020

Допустим, у меня есть следующие данные

data: [
        { key: 1, id: 1, uri: "", image:false },
        { key: 2, id: 2, uri: "", image:false },
        { key: 3, id: 3, uri: "", image:false },
        { key: 4, id: 4, uri: "", image:false }
      ]

Я хочу обновить URI, используя setState(), и до сих пор я придумал следующее, используя React.

 `data: update(this.state.data, {1: {uri: {$set: result.uri}, image:{$set: true}}})`

однако вместо того, чтобы иметь только 1, я хочу иметь возможность передавать в индекс, я знаю, что могу сделать это с помощью операторов if, но я уверен, что есть более простой и понятный способ ??

1 Ответ

0 голосов
/ 11 апреля 2020

Вы должны сделать копию данных, обновить ее и затем установить состояние. Например:

копия

let newData = { ...this.state.data }

обновление

newData[0].uri = '';
newData[0].image = true

setState

this.setState({data: newData}) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...