我在React中有一个DataGrid组件,上面显示了它的顶部。DataGrid在useContext上下文中的状态属性上有条件地显示。
{accountContext.accountState.data.accounts ? (
<DataGrid
headCells={headCells}
rows={accountContext.accountState.data.accounts}
title="Related Accounts"
pageSizes={[2, 5, 10]}
actions={[
{
title: "user",
onGridRowActionClick: row => {
deactivateUser(row)
...
const deactivateUser = (row) => {
console.log("ROW-=-=-=-=-=-=-=-=-=-=", row.id, row.isActive)
setRowSelected(row.id)
updateAccount({
variables: {
account: {
id: row.id,
isActive: !row.isActive
}
}
useMemo钩子在数据库中注册更改,并调用reducer函数来更新上下文中的状态。
useMemo(() => {
console.log("ROW CHANGED!!!!!")
if (accountContext.accountState.data.accounts) {
accountContext.accountDispatch({type: SET_IS_ACTIVE, payload: rowSelected})
}
}, [updateAccountData])
})
}
DataGrid不更新!上下文状态中的新数据未映射到DataGrid表的行。映射行的函数实际上被传递到数据被映射的子组件,但是如何让子组件在props中注册更改呢?我觉得它应该已经做到了?