React JS:onClick 不工作;无法使用 onClick 放置 "line-through" 显示 属性

React JS: onClick not working; cant put a "line-through" display property using onClick

为什么我的段落 'line-through' 不显示?我很确定我在这里遗漏了一些重要的东西,这是我目前唯一的反应知识,所以请帮助我获得一个想法逻辑。我为我对这个简单问题的无知表示歉意。

const [strike, isStrike] = React.useState(false);

我这里设置了strike state为true; (我说得对吗?)

const done = () => {
   isStrike(strike);
};

const s = {
  textDecoration: isDone ? "line-through" : "none",
};

我通过 {strike && isDone} 设置了 isDone prop 和 strike var,并将 done 函数调用到 onClick 中。

return (
    <div className="container-item" style={s} >
      <p> {title} </p>
      {strike && isDone}
      <button onClick={done} > Done</button>
    </div>
  );

冠军,请继续尝试此代码。

const [textDecorationType, setTextDecorationType] = React.useState(false);
return (
<div className="container-item">
<p className={`text-decoration:${textDecorationType ? 'line-through' :''}`}> 
{title}</p>
<button onClick={() => setTextDecorationType(!textDecorationType)}>
Done</button></div>);

首先你在哪里定义isDone?而且您的代码中有很多错误。而且您不能将 {strike && isDone} 声明为 child。它会抛出错误。下面是工作代码。

而且,我认为 isStrike 仍然按照您定义 done 函数的方式得到初始错误。为什么不直接制作 isStrike(!strike)。希望这能解决问题。

const [strike, isStrike] = useState(false);
const done = () => {
   isStrike(!strike)
}
const s = {
   textDecoration: strike ? "line-through" : "none",
};
return (
  <div className="container-item" style={s} >
    <p> Hello, Title </p>
    <button onClick={done} > Done</button>
  </div>
);