UNPKG

ssc-grid

Version:

React grid component for SSC 3.0

57 lines (50 loc) 1.35 kB
/** * 模拟redux dispatch去更新state * https://medium.com/@wereHamster/beware-react-setstate-is-asynchronous-ce87ef1a9cf3#.52vhwpymp */ import update from 'immutability-helper'; /** * Update selected status of given row * * @export * @param {number} rowIdx index of given row * @param {boolean} isSelected selected status */ export function updateRowSelectedState(rowIdx, isSelected) { return function (prevState /* , props */) { var _selectedRowsObj; return update(prevState, { selectedRowsObj: (_selectedRowsObj = {}, _selectedRowsObj[rowIdx] = { selected: { $set: isSelected } }, _selectedRowsObj) }); }; } /** * 批量更新所有行的选中状态 */ export function updateAllRowsSelectedState(isSelected) { return function (prevState /* , props */) { var selectedRowsObj = {}; prevState.viewedTableData.forEach(function (item, index) { selectedRowsObj[index] = { selected: isSelected }; }); return update(prevState, { selectedRowsObj: { $set: selectedRowsObj } }); }; } /** * 更新表头被选中的状态 */ export function updateTableHeadRowSelectedState(isSelected) { return function (prevState /* , props */) { return update(prevState, { isHeadRowSelected: { $set: isSelected } }); }; }