1
我有這樣的矩陣: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