Javascript 根据从承诺中解析的数据,更改/控制复选框选中状态

Javascript 根据从承诺中解析的数据,更改/控制复选框选中状态,javascript,reactjs,checkbox,promise,Javascript,Reactjs,Checkbox,Promise,我想要的是,当我单击复选框时,承诺中的解析数据为false。我希望复选框保持其选中状态为未选中。如果数据为真,则复选框检查状态为选中 我已经为此创建了一个简单的应用程序。我正在为复选框使用react和mdc组件。没有错误,我只是想控制复选框的状态 为了让你更方便,我在这里发布代码,但如果你想玩它,我建议访问链接 import React, { useState } from "react"; import "./styles.css"; import Ch

我想要的是,当我单击复选框时,承诺中的解析数据为false。我希望复选框保持其选中状态为未选中。如果数据为真,则复选框检查状态为选中

我已经为此创建了一个简单的应用程序。我正在为复选框使用react和mdc组件。没有错误,我只是想控制复选框的状态

为了让你更方便,我在这里发布代码,但如果你想玩它,我建议访问链接

import React, { useState } from "react";
import "./styles.css";
import Checkbox from "@material/react-checkbox";

export default function App() {
  const [verified, setVerified] = useState(false);

  const promisify = () =>
    new Promise((resolve, reject) => {
      const data = false;
      resolve(data);
    });

  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      <h2>Start editing to see some magic happen!</h2>
      <div className="simple-demo">
        <Checkbox
          checked={verified}
          onChange={(e) => {
            promisify().then((data) => {
              console.log(data);
              if (data) {
                setVerified(e.target.checked);
              }
            });
          }}
        />
        <label>Verify</label>
      </div>
    </div>
  );
}
import React,{useState}来自“React”;
导入“/styles.css”;
从“@material/react Checkbox”导入复选框;
导出默认函数App(){
const[verified,setVerified]=使用状态(false);
const promisify=()=>
新承诺((解决、拒绝)=>{
常数数据=假;
解析(数据);
});
返回(
你好,代码沙盒
开始编辑,看看神奇的发生!
{
promisify()。然后((数据)=>{
控制台日志(数据);
如果(数据){
设置已验证(例如,目标已检查);
}
});
}}
/>
验证
);
}
有一个简单的错误,
您已在值中设置了已验证,但它必须在“已检查”属性中

像这样

import React, { useState } from "react";
import "./styles.css";
import Checkbox from "@material/react-checkbox";

export default function App() {
const [verified, setVerified] = useState(false);

const promisify = () =>
    new Promise((resolve, reject) => {
    const data = false;
    resolve(data);
    });

return (
    <div className="App">
    <h1>Hello CodeSandbox</h1>
    <h2>Start editing to see some magic happen!</h2>
    <div className="simple-demo">
        <Checkbox
        checked={verified}
        onChange={(e) => {
            setVerified(e.target.checked)
            promisify().then((data) => {
            if (data) {
                //Do your action here
            } else {
                setVerified(false);
            }
            console.log(verified)
            });
        }}
        />
        <label>Verify</label>
    </div>
    </div>
);
}
import React,{useState}来自“React”;
导入“/styles.css”;
从“@material/react Checkbox”导入复选框;
导出默认函数App(){
const[verified,setVerified]=使用状态(false);
const promisify=()=>
新承诺((解决、拒绝)=>{
常数数据=假;
解析(数据);
});
返回(
你好,代码沙盒
开始编辑,看看神奇的发生!
{
设置已验证(例如,目标已检查)
promisify()。然后((数据)=>{
如果(数据){
//你在这里做什么
}否则{
setVerified(假);
}
console.log(已验证)
});
}}
/>
验证
);
}

您尚未定义所示代码的具体问题。发生了什么,没有发生什么,应该以不同的方式发生什么,错误等等我已经清除了,我想根据从承诺书中解析的数据控制复选框的选中状态这很难解释,我不是母语人士,但我尝试了。等待second@charlietfl兄弟我又加了一些注释。如果你不明白我的意思,请告诉我,我将在
中插入演示视频,并在
中使用这两种视频。您只使用了
setVerified(false)
。使用这两种方法似乎都有效
}否则{setVerified(true);setVerified(false);}
嗨,罗米克,我试过了,但还是不起作用。我认为这是复选框的性质?或者我在发送框中更改了一些内容,您可以进行测试。谢谢。你用叉子叉起沙箱了吗?你能给我一个链接吗