У меня возникли проблемы.У меня есть довольно распространенный функциональный компонент, подключенный к Redux через mapStateToProps:
const TableWrapper = ({ studentsSelection }) => {
const onComponentStateChanged = params =>
params.api.forEachNode(node =>
studentsSelection.selectedStudents.findIndex(student =>
student.number === node.data.number) >= 0 &&
node.setSelected(true)
);
const gridOptions = getGridOptions(onComponentStateChanged(), onSelection);
return (
<BootStrapTableWrapper>
<Table gridOptions={gridOptions} />
</BootStrapTableWrapper>
);
};
TableWrapper.propTypes = {
studentsSelection: PropTypes.shape({
selectedStudents: PropTypes.array
})
};
const mapStateToProps = state => ({
studentsSelection: state.gpCreationWizard.studentsSelection
});
export default connect(mapStateToProps)(TableWrapper);
Где getGridOption относится к этому:
const getStudentsSelectionGridOptions = (onComponentStateChanged, updateStudentsSelectionSelectionAction) => ({
...studentsSelectionGridOptions,
onComponentStateChanged(props) {
onComponentStateChanged(props);
},
onRowSelected({node}) {
updateStudentsSelectionSelectionAction(node);
},
});
export default getStudentsSelectionGridOptions;
И полученные gridOptions используются для таблицы Ag-Grid.
Итак, позвольте мне объяснить бизнес-функцию: я использую таблицу Ag-Grid, и когда пользователь выбирает некоторых учеников, они добавляются в хранилище Redux.Затем я использую onComponentStateChanged
, чтобы сохранить выбор на нумерации страниц.Так что, если пользователь изменил страницу, и старые данные будут заменены новыми, я хочу сохранить выбор, когда он вернется обратно.Но проблема в том, что onComponentStateChanged
всегда ссылается на один и тот же studentsSelection.selectedStudents
(но другие методы рендеринга и получения новых данных).Так что это, вероятно, что-то о js scopes.Пожалуйста, что я должен сделать, чтобы эта функция использовала новые данные, а не старые.Я пытался обернуть это в функцию пыльника, но это не имело никакого эффекта.Забавный факт, что это прекрасно работает для компонента класса и ссылается this.props.Если я объяснил это не очень ясно, пожалуйста, спросите о более подробной информации.