#javascript #reactjs #api #widget #weather
#javascript #reactjs #API #виджет #Погода
Вопрос:
В настоящее время я пытаюсь заставить виджет погоды работать с помощью модуля npm https://react-open-weather.gitbook.io/project /. Это компонент React, с которым я никогда раньше не работал.
Я взял CDN, предоставленные модулем npm, но кроме этого я не знаю, как каким-то образом «включить» мой JS-файл для чтения компонента React или как я могу его интегрировать. Я пробовал эту ссылку (https://reactjs.org/docs/add-react-to-a-website.html ) ранее задавал вопрос здесь, но материал начал ломаться (см. Фрагмент кода ниже).
Проблема в том, что я не знаю, как работать с React, мне удалось все испортить. Вот почему я обращаюсь к вам сейчас: кто-нибудь с опытом работы с React, кто мог бы мне здесь помочь?
Следующий компонент react — это то, как мне нужно загрузить данные о погоде на сегодня по названию города:
<ReactWeather
forecast="today"
apikey="bdb591c14b9e4a079623b1a838313888"
type="city"
city="Copenhagen"
/>
Мой проект построен с использованием vanilla JS, поэтому мне понадобится помощь в интеграции этого компонента в мой файл.
<head>
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/weather-icons/2.0.9/css/weather-
icons.min.css"
type="text/css"/>
</head>
<body>
<section id="weather">
<div class="weather_component_container"></div>
</section>
<!-- npm module for weather -->
<script src="node_modules/react-open-weather/lib/js/ReactWeather.js"></script>
<!-- Load React -->
<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
<!-- Load our React component -->
<script src="weather.js"></script>
<script src="script.js"></script>
</body>
Я получил следующий начальный код из https://reactjs.org/docs/add-react-to-a-website.html и заменил его моим элементом DOM, который называется #weather
И это ошибка, которую я получаю в консоли: «Аргумент «data» должен быть типа string, Buffer, TypedArray или DataView. Полученный объект типа»
weather.js
'use strict';
React.createElement(ReactWeather, {
forecast: "today",
apikey: "bdb591c14b9e4a079623b1a838313888",
type: "city",
city: "Copenhagen"
});
ReactDOM.render(
document.getElementById('weather')
);
Комментарии:
1. reactjs.org/docs /… Попробуйте выполнить этот шаг, чтобы использовать компонент jsx.
2. @StefanWang пожалуйста, ознакомьтесь с обновленным фрагментом кода и ошибкой консоли в последней части моего вопроса
Ответ №1:
По умолчанию JavaScript не понимает синтаксис JSX. Вы можете пропустить этот документ: https://reactjs.org/docs/add-react-to-a-website.html#quickly-try-jsx
Пожалуйста, добавьте скрипт и повторите попытку
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
Примечание: не используйте этот скрипт в рабочей среде, потому что это может замедлить работу вашего приложения. Для использования в рабочей среде обратитесь к документу https://reactjs.org/docs/add-react-to-a-website.html#add-jsx-to-a-project
Комментарии:
1. Привет, Пэт, спасибо за ваш вклад. Я просмотрел статью и выполнил команды, но я все еще не понимаю, почему мой компонент React выдает ошибку в консоли. Должен ли я написать это иначе, чем то, что у меня есть выше в моем фрагменте кода?