Почему неправильно-то? Главное чтобы при изменении порядка элементов, состояние обновлялось иммутабельно.
А задавать полученное состояние если используете в проекте React версии ниже 16.3 можно примерно так:
const computeDerivedState = props => ({
someData: props.someData,
});
class Example extends Component {
state = {
...computeDerivedState(this.props),
someState,
};
componentWillReceiveProps(nextProps) {
if (nextProps.someData !== this.props.someData) {
this.setState(computeDerivedState(nextProps));
}
}
}
Если используете в проекте React ˆ16.3, то вместо componentWillReceiveProps и computeDerivedState используйте getDerivedStateFromProps и прочитайте
эту статью.