React React с использованием компонента js

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

0
задан glennsl 14 April 2019 в 13:38
поделиться

2 ответа

BuckleScript будет помещать сгенерированные js-артефакты в lib/js/... по умолчанию, поэтому вы должны либо написать свой импорт относительно этого, либо настроить bsb для размещения артефактов рядом с исходными файлами. Вы делаете последнее, устанавливая "in-source": true для данного package-spec в bsconfig.json. Например :

{
  "package-specs": {
    "module": "commonjs",
    "in-source": true
  }
}

См. Документацию для элемента конфигурации package-specs .

0
ответ дан glennsl 14 April 2019 в 13:38
поделиться

После некоторых настроек, вот что работает для меня:

// lib/js/src/interop/Carousel.js
import React from 'react'
import Slider from 'react-slick'

const Carousel = props => {
  return (
    <Slider>
      <div>
        <h3>{props.name} 1</h3>
      </div>
    </Slider>
  )
}

export default Carousel


// src/Carousel.re    
[@bs.module "./interop/Carousel"] [@react.component]
external make: (~name: string) => React.element = "default"; // handle default export

// src/Index.re
ReactDOMRe.renderToElementWithId(<Carousel name="it works!" />, "carousel");

Поскольку Carousel.js использует es6 и jsx, мне нужно настроить webpack для работы с ним ( es6 JSX ). И bsconfig.json должны иметь эти настройки:

"reason": {
  "react-jsx": 3
},
"package-specs": [
  {
    "module": "commonjs",
    "in-source": false
  }
]
0
ответ дан Minh Thai 14 April 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: