В следующем коде cityNameLength
- это число и обозначение длины имени одного города. Моя цель - визуализировать несколько элементов на основе значения cityNameLength
. Итак, если cityNameLength
равно 5 Мне хотелось бы иметь 5 span
элементов.setState метод вызывает «Warning: setState (...): может обновлять только смонтированный или монтажный компонент ..» ошибка
Это то, что я есть:
class myCitiesClass extends Component {
constructor(props) {
super(props);
this.state = {cLength: 0};
this.setState({ cLength: this.props.cityNameLength });
}
renderDivs() {
var products = []
var cNameLength = this.state.cLength
for (var p = 0; p < cNameLength; p++){
products.push(<span className='indent' key={p}>{p}</span>);
}
return products
}
render() {
return (
<View>
<Text>City name length: {this.props.cityNameLength}</Text>
<View>{this.renderDivs()}</View>
</View>
);
}
}
Это ошибка, я получаю:
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.
Это потому, что вы устанавливаете состояние в конструкторе. Попробуйте переместить его в 'componentDidMount' –
Здесь уже был дан ответ http://stackoverflow.com/questions/34961853/what-will-happen-if-i-use-setstate-function-in-constructor-of-a-class -ин-реакция –