Привет! В React, замена компонента по нажатию кнопки можно реализовать с помощью состояния. Вот примерный код, который поможет тебе начать:
```jsx
import React, { useState } from "react";
import Weather from "./Weather";
import CityForm from "./CityForm";
function App() {
const [showWeather, setShowWeather] = useState(false);
const handleButtonClick = () => {
setShowWeather(!showWeather);
};
return (
<div>
<button onClick={handleButtonClick}>Изменить город</button>
{showWeather ? <Weather /> : <CityForm />}
</div>
);
}
export default App;
```
Здесь мы используем хук `useState` для создания состояния `showWeather`, которое отвечает за отображение компонента `Weather` или `CityForm`. При нажатии кнопки "Изменить город" вызывается функция `handleButtonClick`, которая изменяет состояние `showWeather` на противоположное значение.
Затем мы используем условный оператор `{}` для отображения компонента в зависимости от значения `showWeather`. Если `showWeather` равно `true`, показываем компонент `Weather`, иначе показываем компонент `CityForm`.
Надеюсь, это поможет!