Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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 JS中工作_Javascript_Css_Reactjs - Fatal编程技术网

Javascript 禁用的按钮不';如果指定了文本颜色,则不能在React JS中工作

Javascript 禁用的按钮不';如果指定了文本颜色,则不能在React JS中工作,javascript,css,reactjs,Javascript,Css,Reactjs,我想指定按钮的样式(背景和文本颜色),稍后在代码中禁用。 及 我的代码是 import React, { useState, useEffect } from "react"; import "./styles.css"; export default function App() { const [loading, setLoading] = useState(false); const handleClick = (e) => {

我想指定按钮的样式(背景和文本颜色),稍后在代码中禁用。 及

我的代码是

import React, { useState, useEffect } from "react";

import "./styles.css";

export default function App() {
  const [loading, setLoading] = useState(false);

  const handleClick = (e) => {
    e.preventDefault();
    setLoading(true);
  };
  return (
    <div className="App">
      <button disabled={loading} onClick={handleClick} className="btn">
        {" "}
        Click me
      </button>
    </div>
  );
}
链接到


当我指定文本的颜色(白色)禁用时,不会将颜色更改为灰色(按钮看起来不禁用),当未定义文本颜色时,它是黑色的,单击后它是灰色的。有没有办法在单击之前将文本颜色定义为白色,在单击按钮时将颜色更改为灰色?因为我需要在渲染时使用蓝色背景和白色文本制作按钮。感谢所有帮助我的人。

这大部分都可以通过CSS完成,不过您还需要在React组件中添加一项内容

JS:


编辑:您也可以使用:enabled和:disabled伪选择器,如上述注释。

您应该详细说明当按钮处于活动状态时设置颜色的
:enabled
选择器,或者在禁用时为颜色指定
:disabled
选择器,例如,通过:@Icepickle,非常感谢,成功了!真不敢相信我被这么简单的事情困住了)
.btn {
  width: 200px;
  height: 50px;
  background-color: blue;
  /* color: white; */
}

.btn:hover {
  cursor: pointer;
}

import React, { useState, useEffect } from "react";

import "./styles.css";

export default function App() {
  const [loading, setLoading] = useState(false);

  const handleClick = (e) => {
    e.preventDefault();
    setLoading(true);
  };
  return (
    <div className="App">
      <button disabled={loading} onClick={handleClick} className={`btn${loading ? ' disabled' : ''}`}>
        {" "}
        Click me
      </button>
    </div>
  );
}
.btn {
  width: 200px;
  height: 50px;
  background-color: blue;
  /* color: white; */
}
.btn.disabled {
  opacity: .65;
  pointer-events: none;
}
.btn:hover {
  cursor: pointer;
}
.btn:active {
  color: green; // Or whatever style you want
}