2016-01-13 2 views
1

Я использую массивы с состоянием, но я не уверен, почему я могу получить, но не установить с помощью массива. У меня есть:React Native state с массивами

 getInitialState: function() { 
    return { 
     stored: {'ok':1,'maybe':1,'then':1} 
    }; 
    }, 

я могу получить деталь массива без проблем, как это:

 <Text style={styles.text}> 
      {this.state.stored['ok']==1 ? "yes" : ""} 
     </Text> 

Но странно пытается установить состояние не позволяет ссылаться на элемент массива и выдает ошибку:

this.setState({stored['ok']: 1}); 
+0

Ищем ответ здесь - кто-нибудь? – Hasen

ответ

1

Я думаю, что это сработает, если вы замените весь хэш новым.

попробовать что-то вроде этого:

var newHash = this.state.stored; 
newHash['ok'] = 1; 
this.setState({ stored: newHash }); 

Но это будет лучше не хранить хэши в состоянии.

+0

Да, это работает, спасибо. Почему это не работает так, как я это делал? Кажется странным, что нужно это делать. – Hasen

+0

Ключ объекта не будет массивом – siwymilek

+0

Но он работает как массив при его инициализации, а также при его извлечении. Единственный раз, когда это не так, - это установить его. – Hasen

Смежные вопросы