Весь твой код в принципе неправильный. Я, конечно, не знаю, что за компонент Form, но предполагаю, что там тоже будут ошибки. Возможно ты gettingWeather передаешь в onSubmit и там получаешь данные погоды, которые в итоге все равно никуда не идут - потому что код не дописан, но ок, вопрос вообще не про это.
State в React-компоненте это не просто переменная, которую можно создать с помощью const или let. Есть два варианта создания компонента и хранение стейта - это классовый и функциональные подходы:
1) Class
class App extends React.Component {
// на самом деле тоже старый подход
constructor() {
this.state = { city: "Какой-то город" }
}
// babel из "коробки" давно уже поддерживает такой вариант
state = { city: "Какой-то город" }
}
2) Functional
const App = () => {
const [state, setState] = React.useState('Какой-то город')
}
Чтобы поменять значение стейт надо вызвать функцию в которой ты меняешь стейт. То есть в твоем случае handleClick должен находить в блоке App, а не gettingWeather и вызываться например при клике на кнопку где-то
<button onClick={handleClick}>Set new state</button>
P.S. А, ну и у App в this нет setState, который ты вызываешь из handleClick. Короче ты смешал все виды взаимодействия с состоянием в одной функции. Советую почитать сначала туториал реакта на оф сайте, а потом что-то делать методом тыка.