我想在每次选中复选框(True)时更新文本输入字段.请问有没有人能告诉我这是怎么做的?

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

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

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值更新时将一个值附加到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/>")

Typescript相关问答推荐

类型ElementTypes不可分配给类型ElementTypes.word'

在控制器中使用@ DeliverGuards时实现循环依赖项时未定义的依赖项

如何修复VueJS中的val类型不能赋给函数

Angular 17 -如何在for循环内创建一些加载?

如何正确修复TypScript 4.7到4.8升级中的TS 2345编译错误

在TypeScript中使用泛型的灵活返回值类型

类型脚本接口索引签名

如何根据另一个属性的布尔值来缩小函数属性的返回类型?

Angular 行为:属性类型从SignalFunction更改为布尔

在NextJS中获得Spotify Oauth,但不工作'

基于键的值的打字动态类型;种类;

类型{}上不存在属性&STORE&A;-MobX&A;REACT&A;TYPE脚本

如何编写一个类型脚本函数,将一个对象映射(转换)为另一个对象并推断返回类型?

如何将泛型对象作为返回类型添加到类型脚本中

如何在方法中正确地传递来自TypeScrip对象的字段子集?

基元类型按引用传递的解决方法

错误TS7030:并非所有代码路径都返回值.";由tsfig.json中的";Strong";:False引起

如何根据Typescript 中带有泛型的对象嵌套键数组获取数组或对象的正确类型?

如何让Record中的每个值都有独立的类型?

将对象数组传递给 Typescript 中的导入函数