Почему элементы HTML не отображаются в Preact?

Я работаю над проектом Preact, и это код страницы:

return (
    <Fragment>
        <div style = {gridStyle}>
            <p>Test</p>
        </div>
        <Keyboard offset = {this.state.octaveAdj} highlightTable = {highlightTable} highlightColor = {colorIndex} />
        <KeySelector selectedKey = {selectedKey} link = {true} />
        <Playbox offset = {this.state.octaveAdj} highlightTable = {highlightTable}
          raiseOctave = {this.raiseOctave} lowerOctave = {this.lowerOctave}
          risingDisabled = {this.state.octaveAdj === MAXoctaveAdj} lowerDisabled = {this.state.octaveAdj === MINoctaveAdj}
          color = {color} />
        <ChordDetail chord = {chord} inversion = {inversion} color = {color} />
        <ChordSelector selectedKey = {selectedKey} />
    </Fragment>
);

На сервере разработки (которым управляет Parcel) все отображается так, как задумано, за исключением файла div.

gridStyleэто правильный объект JS:

const gridStyle = {
  display: 'grid',
  gridTemplateColumns: 'repeat(4, 1fr)',
  gridTemplateRows: '1fr 1fr',
};

Я пробовал убрать div и оставить только p, но ничего не меняется. Это приводит меня к выводу, что это проблема каждого собственного HTML-элемента, в отличие от компонентов, которые отображаются нормально. Но даже когда я помещаю это в компонент, вот так:

import { Component } from 'preact'

const styles = {
    display: 'grid',
    gridTemplateColumns: 'repeat(4, 1fr)',
    gridTemplateRows: '1fr 1fr', 
};

export default class Test extends Component {
    constructor() {
    super();
    }

    render() {
        return (
            <div style = {styles}>
                <p>Test</p>
            </div>  
        )
    }
}

И добавьте его в код, он все равно не рендерится.

Что можно с этим сделать?

Редактировать: Это мой .parcelrc:

{
    "extends": "@parcel/config-default",
    "transformers": {
        "*.{ts,tsx}": [
            "@parcel/transformer-typescript-tsc"
        ]
    },
    "reporters": [
        "...",
        "parcel-reporter-static-files-copy"
    ]
}

Я воссоздал вашу среду на скрипке (jsfiddle.net/bhtxvwp3), но не смог воспроизвести вашу проблему. Можете ли вы отредактировать его, чтобы воспроизвести наблюдаемое поведение?

Jeff Bowman 31.05.2024 21:58

Как вы настроили Parcel? Вы правильно настроили JSX?

rschristian 01.06.2024 04:19

@JeffBowman Как мне это воспроизвести? Я не могу просто загрузить весь проект, это даже не мой проект.

mikwee 01.06.2024 23:54

@rschristian Я только что установил плагин Babel, и ничего не изменилось. Что касается посылки, см. Редактирование моего сообщения.

mikwee 01.06.2024 23:57

@mikwee Вам, как всегда, нужна минимальная репродукция. Найдите минимальный репозиторий, демонстрирующий проблему. В противном случае мы не сможем вам помочь, мы не сможем увидеть ваши файлы.

rschristian 02.06.2024 01:59

@mikwee Все, что вы нам показали, выглядит правильно, поэтому я попытался это воспроизвести. Если вы не знаете, как добиться провала, мы тоже этого не сделаем. Где-то между моим рабочим примером и вашим неудачным случаем существует разрыв, и без вашей помощи я не знаю, хватит ли у нас как ответчиков информации, чтобы закрыть его.

Jeff Bowman 02.06.2024 03:14

@rschristian @jeff-bowman Итак, послушайте, я установил два плагина Babel — @babel/plugin-transform-react-jsx-development и @babel/types — и теперь они работают! Раньше у меня была неразработанная версия предыдущей версии, думаю, мне нужна была версия для разработчиков для режима разработки!

mikwee 09.06.2024 16:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
7
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это было исправлено после установки @babel/plugin-transform-react-jsx-development. Когда я обнаружил проблему, я находился в режиме разработки, поэтому думаю, вам нужна именно версия для разработчиков.

Если хотите, вы можете принять свой ответ, поставив галочку в знак того, что вопрос решен. Рад, что ваша среда работает!

Jeff Bowman 14.06.2024 19:14

Другие вопросы по теме