Проблема с ReactJS и рендерингом

#css #reactjs

#css #reactjs

Вопрос:

Я просто создавал веб-приложение с использованием ReactJS, но проблема в том, что фоновое изображение не отображается должным образом.

Ниже приведен фрагмент кода.

 class WeatherComponent extends Component{
    constructor(props){
        super(props);
        this.state={
            key: 'XXXXXXXXX',
            place: 'New York',
            temperature: '17',
            description: 'Light Rain'  
        }
        this.handleSubmit=this.handleSubmit.bind(this);
        this.update=this.update.bind(this);
    }
    update(values){
        this.setState({ temperature: values.current.temperature })
        this.setState({ description: values.current.weather_descriptions[0] })
    }

    handleSubmit(value){
        fetch('http://api.weatherstack.com/current?access_key='   this.state.key   'amp;query='  value.place)
            .then(response=>response.json())
            .then(values=>this.update(values))
        this.setState({ place: value.place })
    }
    render(){
        return(
            <div className='background-style'>
                <div className='box'>
                    <div className='search-box'>
                        <input type="text" placeholder="search"/>
                        <button type='submit' className='button text-small'>Search</button>
                    </div>
                </div>
            </div>
        )}
}
  

Файл CSS является:

 .text{
    font-family: 'PT Sans Narrow';
    font-size: 50px;
    font-weight: lighter;
    color: crimson;
}
.text-small{
    font-family: 'PT Sans Narrow';
    font-size: 20px;
    font-weight: lighter;
    color: white;
}
.box{
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  left: 50%;
  width: 450px;
  height: 700px;
  background-image: url("./assets/images/wall.jpg");

}
.search-box{
  position: absolute;

}
.button {
  background-color: rebeccapurple; 
  border: none;
  outline: none;
  color: black;
  padding: 15px 32px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 16px;
  margin-top: 10px;
}
.background-style{
  background-image: url("./assets/images/sunny.jpg");
  background-size: cover;
  background-position: bottom;
}
  
  • Если я изменю .box.position атрибут на relative в файле CSS, фоновое изображение отобразится, но окно поиска не отобразится. Создание атрибута absolute полностью удаляет фоновое изображение из рендеринга, я не знаю, почему это происходит, некоторая помощь в решении этой проблемы очень ценится.

Комментарии:

1. Для меня это было нормально. Я просто вырезаю и вставляю ваш код. Проверьте это -> codesandbox.io/s/test-s3w7t

2. Да, но используете ли вы классы CSS?

3. да, все в порядке codesandbox.io/s/test-s3w7t?file=/index.css

4. да, хорошо, я перезапущу сервер и проверю это

5. Я отредактировал вопрос, чтобы решить новую проблему.