Я создаю приложение для реагирования на погоду, в котором пользователям разрешено вводить название своего города, и информация о погоде отображается пользователю.
Проблема в том, что у меня есть ввод и кнопка в форме, и я хочу получать данные от другого компонента под названием WeatherApp. Я хочу, чтобы пользователь мог ввести свой город и получить информацию о погоде с помощью формы.
как связать два компонента
компонент формы
import '../App.css';
import Input from './Input';
import Button from './Button';
import { useState } from 'react';
const Form = ({handleQueryChange}) => {
const [city, setCity] = useState('')
const handleChange = (e) => {
setCity(e.target.value)
}
const handleSubmit = (e) => {
e.preventDefault();
handleQueryChange(city);
}
return (
);
}
export default Form;
компонент приложения погоды
import React from 'react';
import { BrowserRouter, Routes,Route } from 'react-router-dom';
import { useState, useEffect } from 'react';
import { WiDaySunny,WiCloud, WiNightCloudy,WiHumidity, WiNightClear } from 'react-icons/wi';
import Layout from './Layout';
import Home from './Home';
import Minutecast from './Minutecast';
import Hourly from './Hourly';
import Today from './Today';
import '../App.css';
const WeatherApp = () => {
const [data, setData] = useState([]);
const [query, setQuery] = useState('Accra');
const handleQueryChange = (data) => {
setQuery(data.location.name);
}
const getWeatherIcons = (description) =>{
switch(description.toLowerCase()) {
case 'sunny':
return ;
case 'cloud':
return ;
case 'clear':
return ;
case 'partly cloudy':
return ;
default:
return ;
}
}
const convertToWhole = (tem) =>{
const whole = Math.trunc(tem);
return whole;
}
useEffect(()=>{
const fetchWeatherData = async () => {
try {
const response = await fetch(`https://api.weatherapi.com/v1/forecast. ... &alerts=no`);
const result = await response.json();
setData(result);
console.log(result);
} catch (error) {
console.error("Error fetching weather data:", error);
}
};
fetchWeatherData();
}, [data]);
return (
{/* */}
}>
)
}
export default WeatherApp;
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-reactjs
Как получить данные в форме из другого компонента в ReactJS ⇐ Javascript
Форум по Javascript
-
Anonymous
1736861846
Anonymous
Я создаю приложение для реагирования на погоду, в котором пользователям разрешено вводить название своего города, и информация о погоде отображается пользователю.
Проблема в том, что у меня есть ввод и кнопка в форме, и я хочу получать данные от другого компонента под названием WeatherApp. Я хочу, чтобы пользователь мог ввести свой город и получить информацию о погоде с помощью формы.
как связать два компонента
компонент формы
import '../App.css';
import Input from './Input';
import Button from './Button';
import { useState } from 'react';
const Form = ({handleQueryChange}) => {
const [city, setCity] = useState('')
const handleChange = (e) => {
setCity(e.target.value)
}
const handleSubmit = (e) => {
e.preventDefault();
handleQueryChange(city);
}
return (
);
}
export default Form;
компонент приложения погоды
import React from 'react';
import { BrowserRouter, Routes,Route } from 'react-router-dom';
import { useState, useEffect } from 'react';
import { WiDaySunny,WiCloud, WiNightCloudy,WiHumidity, WiNightClear } from 'react-icons/wi';
import Layout from './Layout';
import Home from './Home';
import Minutecast from './Minutecast';
import Hourly from './Hourly';
import Today from './Today';
import '../App.css';
const WeatherApp = () => {
const [data, setData] = useState([]);
const [query, setQuery] = useState('Accra');
const handleQueryChange = (data) => {
setQuery(data.location.name);
}
const getWeatherIcons = (description) =>{
switch(description.toLowerCase()) {
case 'sunny':
return ;
case 'cloud':
return ;
case 'clear':
return ;
case 'partly cloudy':
return ;
default:
return ;
}
}
const convertToWhole = (tem) =>{
const whole = Math.trunc(tem);
return whole;
}
useEffect(()=>{
const fetchWeatherData = async () => {
try {
const response = await fetch(`https://api.weatherapi.com/v1/forecast.json?key=95f0ddb3a06a4a358cf223933242311&q=${query}&days=10&aqi=yes&alerts=no`);
const result = await response.json();
setData(result);
console.log(result);
} catch (error) {
console.error("Error fetching weather data:", error);
}
};
fetchWeatherData();
}, [data]);
return (
{/* */}
}>
)
}
export default WeatherApp;
Подробнее здесь: [url]https://stackoverflow.com/questions/79355185/how-to-receive-data-in-form-from-another-component-in-reactjs[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия