首页 > 解决方案 > 单击输入时在输入中添加一个值

问题描述

我想实现下一个结果:
当我从输入开始在每一上输入时,在这个符号textarea的开头添加: 。 接下来是场景:textarea+

  1. 用户在第一行开始输入,在第一个输入的字母之后应该出现+在行的开头。
  2. 用户点击 enter 并且在第二行的开头应该出现另一个+,依此类推。
    最后,我应该在 textarea 中得到类似的东西:
    + text from first row
    + text from second row
    ... ... ...
    演示:https
    ://codesandbox.io/s/modest-hertz-tkyxv?file=/index.js 现在这个想法没有工作,因为+每次我打字时都会添加标志。
    问题:如何实现我上面描述的?

标签: javascriptreactjs

解决方案


你可以这样做:

https://codesandbox.io/s/interesting-driscoll-2cvfq?file=/index.js:261-525

const onChange = e => {
setState(
  e.target.value === "+"
    ? ""
    : (!state ? "+" : "") +
        e.target.value
          .split(/\n\+$/)
          .join("\n")
          .split(/\n[^+]/)
          .join("\n+")
);

推荐阅读