提问人:Cool 提问时间:11/4/2023 最后编辑:Cool 更新时间:11/4/2023 访问量:24
React Table 第一次不更新值
React Table not updating value the first time
问:
第一次调用 SetState 时 React 表不更新的问题。 在下面的示例代码中,表中的 InputBox 显示了在类级别声明的 toggleViewState 变量的值
首次加载表单时,它会在表中正确地将值显示为 true
但是,当点击按钮切换状态时,输入框不会在第一次单击时显示更新的值,它只在第二次单击时显示更新的值,值为 false
代码提取
const [toggleViewState, setToggleViewState] = useState(true);
const columns = [
{
dataIndex: 'targetRowValue',
key: 'temp',
width: '20%',
render: (text, record, index) => (
<Input size="medium" value={toggleViewState}/>
),
},
];
const onSwitchViewState = () => {
setToggleViewState(!toggleViewState);
}
return (
<div>
{targetData.length > 0 && (
<Table
data={targetData}
style={{ wordBreak: 'break-all' }}
columns={columns}
striped
/>
)}
<div className="lmn-mt-3">
<table>
<tr>
<td>`your text`
<Button onClick={onSwitchViewState}>Toggle View</Button>
</td>
</tr></table></div></div>
尝试使用 useMemo hook add 在声明列定义时添加对 toggleViewState 变量的依赖,但它不起作用'
答:
0赞
ray
11/4/2023
#1
你的问题主要是缺乏数据,而且很难知道表格里发生了什么。状态更新正常。但是,查看代码,我可以猜测。这可能是因为 React 在 dom 更新期间不会认为你的元素有什么不同。尝试在输入元素中添加一个键:Input
render: (text, record, index) => (
<Input size="medium" value={toggleViewState} key={`${toggleViewState}-${index}`} />
),
评论