Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确定在react(useState)中选中复选框的方法_Javascript_Reactjs_React Hooks - Fatal编程技术网

Javascript 确定在react(useState)中选中复选框的方法

Javascript 确定在react(useState)中选中复选框的方法,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,这是我第一次开发react应用程序。我尝试在表的每一行中实现复选框,并检查哪些行被选中 我使用useStatehook生成checked和onChange事件,但是当我选中然后取消选中复选框时,这些值似乎没有刷新 我想问一下如何添加逻辑来删除钩子上未勾选的值 T1 复选框A-选中 复选框B-选中 检查地图-A,B T2 复选框B-未选中 CheckedMap-A,B//取消选中的复选框B也存储在CheckedMap中 谢谢你的帮助 export default function({ infini

这是我第一次开发react应用程序。我尝试在表的每一行中实现复选框,并检查哪些行被选中

我使用
useState
hook生成checked和onChange事件,但是当我选中然后取消选中复选框时,这些值似乎没有刷新

我想问一下如何添加逻辑来删除钩子上未勾选的值

T1 复选框A-选中 复选框B-选中 检查地图-A,B

T2 复选框B-未选中 CheckedMap-A,B//取消选中的复选框B也存储在CheckedMap中

谢谢你的帮助

export default function({ infinite }) {
  const [checkedMap, setCheckedMap] = useState(new Map());
}

const handleCheckedChange = transaction_seq => {
    let modifiedMap = checkedMap;
    modifiedMap.set(transaction_seq, !checkedMap.get(transaction_seq));
    setCheckedMap(modifiedMap);
  };

const columns = [
    {
      Header: "Transaction(s)",
      className: "left",
      columns: [
        {
          id: "checkbox",
          accessor: "checkbox",
          Cell: ({ row }) => {
            return (
              <input
                type="checkbox"
                className="checkbox"
                checked={checkedMap.get(row.original.transaction_seq)}
                onChange={() =>
                  handleCheckedChange(row.original.transaction_seq)
                }
导出默认函数({infinite}){
const[checkedMap,setCheckedMap]=useState(new Map());
}
const handleCheckedChange=事务处理顺序=>{
设modifiedMap=checkedMap;
modifiedMap.set(事务顺序,!checkedMap.get(事务顺序));
setCheckedMap(modifiedMap);
};
常量列=[
{
标题:“交易记录”,
类名:“左”,
栏目:[
{
id:“复选框”,
访问者:“复选框”,
单元格:({row})=>{
返回(
handleCheckedChange(行原始事务处理)
}

您可以在地图中检查检查状态,然后决定是设置值还是删除值

const handleCheckedChange = transaction_seq => {
    let modifiedMap = checkedMap;
    if(checkedMap.get(transaction_seq)) {
        modifiedMap.delete(transaction_seq)
    } else {
        modifiedMap.set(transaction_seq, true);
    }
    setCheckedMap(modifiedMap);
  };

这是如何将受控复选框与react
useState
hook一起使用的方法

const{useState}=React;//-->用于内联使用
//为实际项目导入React,{useState}从'React';//-->导入React
常量应用=()=>{
const[checked,setChecked]=useState(false)
常量handleClick=()=>setChecked(!checked)
返回
};
ReactDOM.render(,document.getElementById('root'))


这真的是您的代码吗?它看起来不像是对react函数组件的有效删除。在pre-react时间内,这是用一行代码完成的…如果我有30个复选框,或者数据来自外部API,该怎么办?请查看此答案中的动态复选框数据: