Я пытаюсь использовать ImmutableJS, чтобы помочь поддерживать состояние в компоненте React.Я могу использовать это прекрасно, если состояние содержит неизменный объект.Но если состояние whole является неизменяемым объектом, то оно завершается ошибкой всякий раз, когда я пытаюсь setState () с ошибкой, которая говорит
TypeError: this.state.get не является функцией.
Ниже приведен минимальный пример воспроизведения ошибки.Каждый раз, когда нажимается кнопка increment , переменная count должна увеличиваться и повторно отображаться.Пожалуйста, помогите мне понять, почему этот подход не работает.Спасибо!
import React from 'react';
import { Map as ImmutableMap } from 'immutable'
class App extends React.Component {
constructor (props) {
super(props)
this.state = ImmutableMap({ count: 0 }) // entire state is immutable
}
increment () {
const newCount = this.state.get('count') + 1
this.setState(prevState => prevState.set('count', newCount))
}
render() {
return (
<div>
{ this.state.get('count') } // produces error after setState()
<button onClick={this.increment.bind(this)}>Increment</button>
</div>
);
}
}
export default App;