Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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
Reactjs 反应&x2014;如何制作按钮(防止在处理HTTP请求时双击)_Reactjs_Es6 Promise - Fatal编程技术网

Reactjs 反应&x2014;如何制作按钮(防止在处理HTTP请求时双击)

Reactjs 反应&x2014;如何制作按钮(防止在处理HTTP请求时双击),reactjs,es6-promise,Reactjs,Es6 Promise,**尝试以下操作时,当承诺触发时,按钮将首先被禁用。它将保持禁用状态,直到承诺解决,然后再次启用。请告诉我,因为我被困在这里,不确定这是否是正确的事情** let [enabled] = useState(false); const getTotal = event => { enabled = false; calTotal().then(validateResult => { // enabled = true;

**尝试以下操作时,当承诺触发时,按钮将首先被禁用。它将保持禁用状态,直到承诺解决,然后再次启用。请告诉我,因为我被困在这里,不确定这是否是正确的事情**

let [enabled] = useState(false);
const getTotal = event => {
        enabled = false;
        calTotal().then(validateResult => {
           // enabled = true;
        });
    }
    <Button 
    onClick={() => new Promise((resolve) => {
              resolve({
                      getTotal();
                     })
                 })}>Get Total</Button>
let[enabled]=useState(false);
const getTotal=event=>{
启用=错误;
calTotal()。然后(validateResult=>{
//启用=真;
});
}
新承诺((决议)=>{
决心({
getTotal();
})
})}>合计

有几件事需要考虑:

  • 您没有正确设置
    已启用
    的状态-您需要使用
    使用状态
    挂钩中的功能
  • 你不需要用承诺来包装这件事
  • 您没有将button disabled属性绑定到enable变量
  • 启用的初始状态必须为
    true
    ,才能单击该按钮
  • 请参见此处的调整:

    let [enabled, setEnabled] = useState(true);
    const getTotal = event => {
        setEnabled(false)
        calTotal().then(validateResult => {
           setEnabled(true)
        });
    }
    <Button disabled={!enabled} onClick={() => getTotal()}>Get Total</Button>
    
    let[enabled,setEnabled]=useState(true);
    const getTotal=event=>{
    setEnabled(错误)
    calTotal()。然后(validateResult=>{
    setEnabled(真)
    });
    }
    getTotal()}>Get Total
    
    这是否回答了您的问题?