【问题标题】:CodeMirror Value not updating when props changed in React functional component当 React 功能组件中的道具更改时,CodeMirror 值未更新
【发布时间】:2019-05-15 17:56:34
【问题描述】:

我尝试使用收到的道具更新我的 CodeMirror 组件(从 react-codemirror 导入)的值,但即使道具发生了变化,该值也不会改变。而且因为我使用 corsanywhere 从 API 加载以克服 CORS 限制,所以有时获取请求会失败。但是,当 fetch 成功时,该值仍然没有更新。

这是我尝试的屏幕截图:

function CodeConsole(props) {
  console.log("CodeConsole props: ", props);
  const options = {
    readOnly: true
  };
  const stdout = props.output.stdout;
  console.log("stdout: " + stdout);
  return <Codemirror value={stdout} options={options} autoFocus={false} />;
}

这是我在输入中输入“hello world”时两个日志语句的控制台输出,证明道具已更新:

CodeConsole props:  {output: {stdout: "hello world↵", stderr: "", error: ""}}
stdout: we

请参阅下面的答案以获取解决方案

【问题讨论】:

    标签: reactjs react-props react-codemirror


    【解决方案1】:

    我通过用常规文本区域替换 CodeMirror 组件解决了这个问题,该文本区域相应地更新了它的值。但是,我仍然希望有人解释 CodeMirror 值更新问题背后的原因。我正在为我的代码编辑器和控制台寻找一致的外观和风格,因此仍然非常希望将 CodeMirror 用于控制台。

    更新

    问题实际上出在 react-codemirror 程序中。 我可以使用更新且维护良好的react-codemirror2 再次使用代码镜像进行反应。有关更多详细信息,请参阅此GitHub issue

    【讨论】:

      猜你喜欢
      • 2020-09-15
      • 2021-06-15
      • 1970-01-01
      • 2020-04-30
      • 2021-02-27
      • 2021-12-22
      • 2018-10-28
      • 2017-09-28
      • 1970-01-01
      相关资源
      最近更新 更多