reactjs - react 还原: avoid onClick if loading

标签 reactjs redux

我有一个带有按钮的模态组件,可以使用 axios 进行异步调用。

我需要在调用时删除 onClick 操作以避免不必要的点击。

像这样但更优雅:

const Modal = ( props ) => {  
  const modal = props.modal
  if (!modal.loading) {
    return (
        <div>
          <button onClick={() => props.updateModal(123)}>123</button>        
        </div>
    );
  }
  else {
    return (
        <div>
          <button>123</button>        
        </div>
    );    
  }
}

const mapStateToProps = state => {
  return {
    modal: state.modal,
  }
}

const mapDispatchToProps = dispatch => {
  return {    
    updateModal(number){      
      dispatch(loadingModal(true));      

      // async call
      return axios.post(
          // async call data
        )
        .then((response) => {
          dispatch(loadingModal(false));          
          dispatch(updateModal(number))
        })
        .catch((error) => {
            console.log("Error");
        }
      )
    }
  };
}

最佳答案

您可以有条件地采取类似的操作,而不是有条件地渲染带有或不带有 onClick 的按钮

const Modal = ( props ) => {  
  const modal = props.modal
  const handleClick = (val) => {
       if(!modal.loading) {
          props.updateModal(val)
       }
   }
    return (
        <div>
          <button onClick={() => handleClick(123)}>123</button>        
        </div>
    );
}

关于reactjs - react 还原: avoid onClick if loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48406576/

相关文章:

javascript - 在 JS/React 中,如何将数组属性存储到新数组中以显示新数组值?

javascript - Typescript React.Js 文件上传事件 Ts2322 错误

reactjs - antd 提及组件出现异常错误

javascript - React-router 弄乱了请求 url

javascript - 如何处理多个 api 请求,以显示来自 redux 存储中一个变量的加载指示器

javascript - 如何让我的组件返回其自身的序列化?

javascript - RactiveJS + Redux 调度操作和水合物

javascript - 将 redux 存储保存到本地存储 - 使用 lit-element

javascript - UI 未更新 React 和 Redux

javascript - 无法更改编辑页面上的输入类型值