Таким образом, единственные причины для этого, если вы сокращаете повторяющийся код, например, два компонента используют одну и ту же логику перед вызовом this.setState
или, если вы хотите упростить тестирование, имея отдельную чистую функцию для тестирования. По этой причине я рекомендую не вызывать this.setState
во внешней функции, а скорее возвращать нужный вам объект, чтобы вы могли вызвать this.setState
для него.
function calculateSomeState(data) {
// ...
return { updated: data };
}
class MyComponent extends React.Component {
constructor(props) {
super(props)
this.state = calculateSomeState(props.data);
}
handleChange = (e) => {
const value = e.target.value;
this.setState(calculateSomeState({ ...props.data, value }));
}
}