Я вызвал API, используя выборку внутри componentDidMount, но мне нужно, чтобы URL-адрес API менялся в соответствии с состоянием, которое я установил в textInput.
Я вижу, что мое состояние меняется в console.info(), но кажется, что оно не меняется внутри componentDidMount.
constructor(props) {
super(props)
this.state = {
codigoCarro: "", //this is the state i need to change
}
}
componentDidMount() {
fetch
(`https://parallelum.com.br/fipe/api/v1/carros/marcas/${this.state.codigoCarro}/modelos`) //i need the state to change here
.then((response) => response.json())
.then((responseJson) => {
this.setState({
modeloCarro: responseJson.modelos
})
})
.catch((error) => {
console.info(error)
})
}
render() {
return (
<Text>Please insert the number informed in the input below</Text>
<TextInput
placeholder = "Código da marca"
onChangeText = {(codigoCarro) => {
this.setState({ codigoCarro });
}}
/>
);
}
нет ввода, нет обработчика изменений, не setState в рендере - читать документы



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Возможно, стоит прочитать React документация для componentDidMount(), так как эта функция вызывается только после того, как компонент вставлен в дерево dom, что означает, что она не будет вызываться каждый раз, когда ваше состояние обновляется.
Возможно, вы ищете функцию componentDidUpdate(), которая вызывается после каждого рендеринга, однако я бы все же прочитал документацию, поскольку вы можете ввести чрезмерные запросы netowrk, изменив это.
Конечный продукт может выглядеть примерно так:
componentDidUpdate(prevProps, prevState) {
if (prevState.codigoCarro == this.state.codigoCarro) return;
fetch
(`https://parallelum.com.br/fipe/api/v1/carros/marcas/${this.state.codigoCarro}/modelos`) //i need the state to change here
.then((response) => response.json())
.then((responseJson) => {
this.setState({
modeloCarro: responseJson.modelos
})
})
.catch((error) => {
console.info(error)
})
}
modeloCarroне в штате