Код Visual Studio змінює формат (React-JSX)


83

У моєму index.js є такий фрагмент

class App extends Component {
    render() {
        return ( <div style = { styles.app } >
            Welcome to React!
            </div>
        )
    }
}


Код працює, але кожного разу, коли я зберігаю (ctrl + s) Visual Studio форматування jsx так:

class App extends Component {
    render() {
        return ( < div style = { styles.app } >
            Welcome to React!
            <
            /div>
        )
    }
}

Як я можу це вирішити? Дякую


Чи встановлено розширення форматування? Я скопіював ваш код у новий js-файл, і він правильно форматується з кодом vs. Отже, якщо у вас встановлено розширення, я б сказав, що видаліть його, якщо ні, то, можливо, вам потрібно оновити vscode
ndonohoe

Відповіді:


253

Врешті-решт, що зробило фокус, було змінити формат файлу з JavaScript на JavaScript React на нижній панелі інструментів. Я публікую його тут для подальшого використання, оскільки я не знайшов жодної документації на цю тему.

введіть тут опис зображення

На додаток до вищезазначеного. Якщо натиснути кнопку «Налаштувати асоціацію файлів для .js», ви можете встановити для всіх файлів .js Javascript React


чи є спосіб увімкнути це за замовчуванням для всіх файлів js. Скажімо, можливо файл налаштувань / конфігурації
Кеншинман

@Kenshinman хотів би це знати! Я працюю лише з React, але всі мої файли .js, а не .jsx
Ерік Бахубер

8
спасибі, ти також можеш помістити "files.associations": {"* .js": javascriptreact "} до settings.json
khoailang

1
Позначити це як
прийняту

4
Це найкраща відповідь у всьому Інтернеті
uneet7

55

змінити налаштування налаштувань vscode> налаштування користувача нижче:

"files.associations": {
        "*.js":"javascriptreact"
    }

26

Ви можете запобігти неправильному форматуванню JSX у VSC, додавши асоціацію у своєму settings.json

Code> Preferences>Settings

У вікні налаштувань пошуку асоціацій натисніть редагувати в settings.json, а потім додайте:

"files.associations": {
    "*.js": "javascriptreact"
}

12

З іншого боку, збереження файлу з розширенням .jsx вирішує це у vscode.

У мене був той самий виклик, і я сподіваюся знайти кращий спосіб вирішення цієї проблеми у vscode.

Я помітив, що запропоновану вам обхідну процедуру потрібно робити кожного разу, коли ви відкриваєте файл реакції з розширенням .js


3
це будь-який інший спосіб надати повноваження JSX JS?
поліцейський

5

Переконайтеся, що у вашому поточному робочому просторі не ввімкнено декілька форматорів JavaScript. (Решту потрібно відключити для поточної робочої області).

реагувати-прикрашати основному робить магію, але не вдається, якщо у вас вже встановлено якийсь інший JS-форматор / прикрасник.

У моєму випадку у мене було реагувати-прикрасити та встановлено розширення JS-CSS-HTML Formatter. Мені довелося відключити JS-CSS-HTML Formatter для моєї поточної робочої області.


як вимкнути форматування для однієї робочої області?
Кріс,

Ось як це зробити> (1) Перейдіть до розділу Розширення. (2) Знайдіть JS-CSS-HTML Formatter (3) Перейдіть до меню Вимкнути випадаюче меню (4) Там повинен бути розділ із написом Вимкнути (Робоча область)
Ожеш,

5

Встановіть Prettier (якщо він не встановлений за замовчуванням) і спробуйте додати це до налаштувань користувача або робочого місця:

"prettier.jsxBracketSameLine": true

Не ставте розрив між поверненням і повернутим виразом JSX.

Увімкніть автоматичне форматування (Alt+Shift+F)та перевірте, чи працює.


5

Я боровся з цим, але нарешті знайшов рішення. Це мій settings.json

{
    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
    "workbench.startupEditor": "welcomePage",
    "window.zoomLevel": 1,
    "emmet.includeLanguages": {
        "javascript": "javascriptreact",
        "vue-html": "html"
    },
    "editor.formatOnSave": true,
    "javascript.updateImportsOnFileMove.enabled": "always",
    "editor.wordWrap": "on",
    "editor.tabSize": 2,
    "editor.minimap.enabled": false,
    "workbench.iconTheme": "vscode-icons",
    "eslint.autoFixOnSave": true,
    "eslint.alwaysShowStatus": true,
    "beautify.ignore": [
        "**/*.js",
        "**/*.jsx"
    ],
    "prettier.jsxSingleQuote": true,
    "prettier.singleQuote": true
}

я додав

"beautify.ignore": ["**/*.js","**/*.jsx"]

1

Ви можете встановити таке розширення, як response-beautify, яке допомагає форматувати код jsx.

Він знайдений тут

Це розширення обертає prettydiff / esformatter для форматування вашого файлу javascript, JSX, typecript, TSX.


Дякую, але я вже встановив це розширення, це не допомогло.
omer727

1

У мене була подібна проблема, а потім я з’ясував, що її причиною стало розширення „beautify”. Після того, як я видалив розширення, все працює нормально.


1

Я щойно додав усі комбінації, згадані вище.

  1. додав це
"files.associations": {
    "*.js": "javascriptreact"
}
  1. додав це також
"beautify.ignore": ["**/*.js","**/*.jsx"]
  1. Видалено додаткове форматування js
  2. встановлений гарніший
  3. Увімкніть красивіше та форматування


0

Prettier - це сумлінний програміст форматування коду. Він застосовує послідовний стиль, аналізуючи ваш код і повторно друкуючи його з власними правилами, що враховують максимальну довжину рядка, обертаючи код, коли це необхідно. включають: JavaScript TypeScript Flow JSX JSON CSS SCSS Менше HTML Vue Angular GraphQL Markdown YAML https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode


0

Прочитавши безліч чудових пропозицій та обхідних шляхів, я виявив, що міг просто розташувати стрілку миші вниз над яскраво-синьою горизонтальною смугою внизу вікна редактора VSCode - клацнути правою кнопкою миші - це відкриє вікно зі спливаючим списком - і зняти вибір = "Відступ редактора" .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.