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