reactjs - 使用 React 如何在每次选中复选框时附加到字符串并显示在另一个输入文本字段中

标签 reactjs typescript string react-native react-hooks

我想在每次选中复选框(true)时更新文本输入字段。有人可以告诉我该怎么做吗?

我正在尝试单击一个复选框并更新另一个输入字段。每次选中该复选框时,我都想将日期添加到字符串中。

目前,我的字符串值正在被新值覆盖。我希望它是一个字符串而不是一个数组。

const [checkboxCheckedTrue, setCheckboxStatus] = useState(false);
 const [updateMyMsg, setmyMsg] = React.useState("");

  useEffect((): void => {
    if (checkboxCheckedTrue) {
      var a = new Date();
      const myMsg = "My Date is" + a;
      
      setmyMsg(myMsg );
    }
  });

我期望的字符串应如下所示:

"Thu Sep 15 2022 15:52:41 <br/> Thu Sep 15 2022 15:52:41 <br/> Thu Sep 15 2022 15:52:41"

最佳答案

如果您想在 checkboxCheckedTrue 值更新并切换为 true 时向 updateMyMsg 状态追加一个值,请使用功能状态更新来追加到之前的状态值。

示例:

const [checkboxCheckedTrue, setCheckboxStatus] = useState<Boolean>(false);
const [myMsg, setMyMsg] = useState<string>("");

useEffect((): void => {
  if (checkboxCheckedTrue) {
    setMyMsg(myMsg => myMsg + (new Date()).toString() + "<br/>");
  }
}, [checkboxCheckedTrue]);

使用数组表示 myMsg 状态并在想要使用状态值时调用 .join 可能会更简单。

示例:

const [checkboxCheckedTrue, setCheckboxStatus] = useState<Boolean>(false);
const [myMsg, setMyMsg] = useState<string[]>([]);

useEffect((): void => {
  if (checkboxCheckedTrue) {
    setMyMsg(myMsg => myMsg.concat((new Date()).toString()));
  }
}, [checkboxCheckedTrue]);

...

myMsg.join("<br/>")

关于reactjs - 使用 React 如何在每次选中复选框时附加到字符串并显示在另一个输入文本字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73726197/

相关文章:

java - 如何正确使用 if/else 语句查找空值?

javascript - Highcharts - 将 X 轴格式设置为 24 小时格式的 2 位数小时

javascript - Ajax post 调用返回 parsererror

javascript - 下面的 React 代码有什么区别?哪一种是最有效率或最有效的?或者它们实际上是相同的吗?

ios - react 导航滑动返回不会触发

javascript - typescript : Argument Type Function is not assignable to parameter type function

javascript - 从 Jest 测试 AWS Cognito 失败,但组件中的相同代码可以工作

javascript - 无法使用 "Observable.Of(value)"

c++ - <string.h> 还是 <string>?

Java:执行连接变量和文字的 StringBuilder.indexOf() 的开销