Как исправить сообщение «неверный запрос» для моей консоли.log?

#api #fetch #openweathermap #weather-api #onkeypress

Вопрос:

Прямо сейчас я близок к тому, чтобы мое приложение погоды заработало, но консоль говорит: {код: ‘400’, сообщение: ‘плохой запрос’} код: «400» сообщение: «плохой запрос». Это говорит мой код console.log(ответа). Я пытаюсь создать событие и onkeypress, когда пользователь вводит данные в городе, чтобы получить api и получить данные. Это единственное, что меня беспокоит.

  import React, { Component } from "react"
    
    
    const API_key = "a157071058623"
       
    
    class App extends Component {
    
        
        constructor(props) {
            super(props)
            this.state = {
                city: '',
                country: '',
                weather: '',
                temp:'',
                
    
                
    
            }
    
            
    
            this.handleChange = this.handleChange.bind(this)
            //this.enterChange = this.enterChange.bind(this)
            
        }
    
            /*enterChange (event) {
                const city = event.value.target
                    if (event.key === 'Enter') {
                        fetch(`http://api.openweathermap.org/data/2.5/weather?q=${city}amp;appid=${API_key}`)
    
                    
                    }
                
            }*/
        
        handleChange(event) {
            const {name, value,} = event.target
            
    
                this.setState({[name]: value})
    
                this.enterChange = async (e) => {
                    e.preventDefault();
                    const city = event.value
                    const api_call = await fetch(`http://api.openweathermap.org/data/2.5/weather?q=${city}amp;appid=${API_key}`)
                    const response = await api_call.json();
                    
                    console.log(response);
                    
                    this.setState({
                        city: `${response.name}`,
                        country: `${response.sys.country}`,
                        temp: this.calCelsius(`${response.main.temp}`),
                        weather: `${response.weather[0].main}`
                    })
                
                }
            
            
            
        
        }
    
        calCelsius(temp) {
            let cell = Math.floor(temp-273.15)
            return cell;
        }
    
        
    
    
                
        render() {
            let months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
            let days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
            let date = String(new window.Date());
            date = date.slice(0,15)
            
        
    
            return(
                <div className={
                    (typeof this.state.weather != "undefined") ? ((this.state.temp > 16) ? 'app hot' : 'app') : 'app' }>
                    
                    <main>
                        <div className="search-box">
                            <input type="text" 
                            className="search-bar"
                            placeholder="Enter a city"
                            name="city"
                            onKeyPress={this.handleChange}
                            onChange={this.enterChange}
                            value={this.state.value}/> 
                        </div>
    
                        
                        <div className="location-box">
                            <div className="location">{this.state.city},{this.state.country} </div>
                            <div className="date">{date}</div>
                            <div className="weather-box">
                            <div className="temp">{this.state.temp}°c</div>
                            <div className="weather">{this.state.weather}</div>
                        </div>
                        </div>
                    </main>
                </div>
            )
        }
    }

export default App