【问题标题】:How can I keep visual studio code from trashing my jsx code?如何防止 Visual Studio 代码破坏我的 jsx 代码?
【发布时间】:2019-02-20 06:38:05
【问题描述】:

我一直在使用 reactjs 开发一个简单的 crud 应用程序。

这是一段代码

enter code hererender() { 返回 ( 产品经理 { this.state.products.map(产品 => { 返回 ( ); }) } );

看起来不错,没什么问题。但是,如果我保存它,VS Code 会执行以下操作:将标签与尖括号分开,等等。我的问题很简单——如何防止 VS Code 破坏我的代码? enter code here render() { 返回 ( 产品经理 { 返回 ( ); }) }

);

标签: reactjs visual-studio-code


【解决方案1】:

您可能安装了一个自动格式化文本的扩展程序。 Prettier 是最受欢迎的之一。据我所知,VSCode 不会自动格式化您的代码。

【讨论】:

  • VSCode 附带 Javascript 语言服务,该服务添加了编辑器功能,使编写 JavaScript 开箱即用。你可以在这里了解更多信息:code.visualstudio.com/docs/languages/javascript
  • 我不这么认为。尽管您是正确的,但我缺少括号。下面的代码是正确的(至少 vs 代码是这样说的)。然而 vs code 也破坏了这段代码。从“反应”导入反应,{组件}; class Player 扩展 React.Component { render() { return (
    Player
    ) } } 导出默认 Player;
【解决方案2】:

似乎有两个问题可能会导致您的问题。您的代码无效,这可能会阻止您的格式化程序正常工作。

首先,我们可以清理您的代码,使其成为有效的 Javascript。存在两个问题:

  1. 您的渲染函数缺少右括号。
  2. 必须为相邻的 JSX 元素分配键或包装在 React Fragment 中。

以下是修复这些问题后有效的 Javascript 的样子:

render() {
  return (
    <React.Fragment>
      Products Manager
      <AddProduct onAdd={this.onAdd} />
      {this.state.products.map(product => {
        return (
          <ProductItem
            key={product.name}
            {...product}
            onDelete={this.onDelete}
            onEditSubmit={this.onEditSubmit}
          />
        );
      })}
    </React.Fragment>
  );
}

VSCode 有一个内置的Javascript Language Service,它允许 支持开箱即用的 Javascript 功能的编辑器。 Learn more here.

【讨论】:

  • 无效代码?我按照教程进行了操作,并且该应用程序可以正常工作-我没有应用程序无法正常工作的问题。我确实遇到了与标签分离的角度和到处都是红色曲线的问题。
  • 红色波浪线表示语法错误。文本和相邻的 JSX 元素必须包含在封闭标记中或作为可渲染元素的数组返回。
猜你喜欢
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 2017-09-30
  • 1970-01-01
相关资源
最近更新 更多