У меня есть эта матрица:ImmutableJS - Обновление ячейки матрицы
const initialState = Immutable.fromJS({
board: [
['','',''],
['','',''],
['','','']
]
});
И эта функция:
function cellClick(state,i,j) {
const board = state.get('board');
var newBoard = board.map(function(arr) {
return arr.slice();
});
newBoard.set(i,j,'Hi');
alert(newBoard.get(i).get(j));
}
- клоны матрица (до newBoard OBJ)
- попытаться установить значение для ячейки матрицы - не работает
- Выполняет вывод сообщения со значениями ячейки - не работает
Я попытался прочитать документы ImmutableJS, но ничего не мог найти о настройке значения внутри матрицы (тип «Список» ImmutableJS).
так на самом деле я могу сделать это вместо этого? : board.setIn ([i, j], 'Hi'); alert (board.getIn ([i, j])); – ohadinho
Нет, вы не можете. Вы должны назначить результат вызова 'setIn' где-то, он неизменен, он не мутирует плату, он возвращает ** новую ** панель с внесенным изменением. Вам также нужно будет вызывать '.toJS()' для данных, если вы хотите зарегистрировать его или предупредить в любом месте. – Olical
Я бы очень рекомендовал прочитать все на главной странице ImmutableJS https://facebook.github.io/immutable-js/ – Olical