У меня есть компонент, который получает изображения в качестве реквизита, выполняет некоторые вычисления на них, и в результате мне нужно обновить его класс. Но если я использую setState
после расчета, я получаю предупреждение о том, что я не должен обновлять состояние еще ... Как мне его реструктурировать?React.js - setState после расчета на основе реквизита
class MyImageGallery extends React.Component {
//[Other React Code]
getImages() {
//Some calculation based on this.props.images, which is coming from the parent component
//NEED TO UPDATE STATE HERE?
}
//componentWillUpdate()? componentDidUpdate()? componentWillMount()? componentDidMount()? {
//I CAN ADD CLASS HERE USING REF, BUT THEN THE COMPONENT'S
// FIRST RENDERED WITHOUT THE CLASS AND IT'S ONLY ADDED LATER
}
render() {
return (
<div ref="galleryWrapper" className={GET FROM STATE????}
<ImageGallery
items={this.getImages()}
/>
</div>
);
} }
Это не является хорошей практикой, как следует this.props.images обновить smallImgsWidthClass не будет как он установлен в конструкторе. Вы должны использовать componentWillReceiveProps, как указано выше. – quoo