React-Native setState - и имя, и значение из одной и той же переменной - PullRequest
1 голос
/ 12 апреля 2019

Можно ли ввести только один аргумент SetState, который содержит как имя, так и значение.Смотрите пример ниже.Что-то не так с скобками?

Это было бы удобно при одновременном изменении множества состояний.То есть сначала подготовьте их в одну длинную строку и выполните setState только один раз.Спасибо!

this.setState({myState: "help"}) // this works of course
whatstate='myState'
this.setState({[whatstate]: "me"}) // this too
whatstate2='myState: "please"' 
this.setState(whatstate2) // but how to make this work?

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019
// if you like to work only with strings
var whatstate = {};
whatstate['myState1'] = 'help';
whatstate['myState2'] = 'me';
whatstate['myState3'] = 'please';

// ^ this will produce an object equivalent to this
//whatstate = {
//  myState1: 'help',
//  myState2: 'me',
//  myState3: 'please'
//}

// which you can use it to 'setState'
this.setState(whatstate);

1 голос
/ 12 апреля 2019

Вы можете позвонить this.setState({ whatstate2 }) для достижения того же эффекта. Это сокращение значения свойства от ES6.

Ссылка: https://ariya.io/2013/02/es6-and-object-literal-property-value-shorthand

Если вы хотите обновить несколько состояний за один раз, вы также можете сделать это следующим образом.

this.setState({
    myState1 : newState1,
    myState2 : newState2
});

Если имена переменных совпадают с именами состояний, как упомянуто ранее, вы можете сделать это.

this.setState({ myState1, myState2 });
...