【发布时间】:2021-05-21 03:09:56
【问题描述】:
我想从组件内的函数中获取属性。该函数称为 checkbox.js:
export default function Checkboxes() {
const [checked, setChecked] = React.useState(false);
const handleChange = (event) => {
setChecked(event.target.checked);
};
return (
<div>
<Checkbox
checked={checked}
onChange={handleChange}
color="primary"
inputProps={{ 'aria-label': 'primary checkbox' }}
/>
</div>
);
}
组件复选框在一个表格行中多次。 props.characterData 是一个具有各种属性的数组。
const TableBody = props => {
const rows = props.characterData.map((row, index) => {
return (
<tr key={index}>
<td>
<Checkbox />
</td>
<td>{row.task}</td>
<td>{row.desc}</td>
</tr>
)
})
return <tbody>{rows}</tbody>
}
我想要做的是每次更改时将“已检查”布尔值保存到 row.checked 属性中,但我尝试或搜索的任何内容都没有工作。
row.checked 来自一个字符数组,其中每个字符都以如下形式初始化:
{ task: '', desc: '', checked: false}
在TableBody中,为数组中的每个元素映射。
任何帮助将不胜感激。
【问题讨论】:
-
Checkbox被检查的值/状态是内部维护的,如果你在外部需要它则需要提供回调函数,或者将Checkbox组件转换为受控输入(即状态是外部的并控制它)。您能否更新您的问题以包含row.priority逻辑? -
我添加了 row.priority 逻辑,但将其重命名为 row.checked。 react 钩子很有帮助,但由于我的复选框是一个函数,而我的 TableBody 是一个组件而不是类渲染,所以我无法使其工作。
标签: javascript reactjs