我已经设置了一个MUI表,它的最后一行包含几个TextField(为了可读性,go 掉了内容):
[Generated rows...]
<TableRow>
<TableCell component="th" scope="row">
<TextField/>
</TableCell> ...
<TableCell>
<Button variant="outlined" onClick={() => addFond()}>
<Add />
</Button>
</TableCell>
</TableRow>
以上行将从来自永久存储状态的数组中生成.
使用addFond()
按钮和功能添加一行:
const addFond = () => {
userDefaults.assuranceVie ??= {}
userDefaults.assuranceVie.tableFondsVI ??= []
userDefaults.assuranceVie.tableFondsVI.push({ ...formik.values, id: uuidv4() })
setDefaults(userDefaults)
}
我为新行使用了Formik表单,并希望为最后一行之上的所有迭代行创建一个新的Formik行.
当单击addFond()
按钮时,我预计状态会更改并重新呈现整个组件.
我让console.log
在组件的顶层打印状态,但在单击时不打印任何内容.
请注意,该表组件被嵌入到更高阶的标记中.
After resolution edit :个
在使用setter之后,我无法修改状态对象并期望更改检测工作,因为状态实际上并没有更改.