Я новичок в React, мне нравится поддерживать состояние самого родительского компонента и передавать его всем дочерним компонентам дочернего компонента. Я хочу обновить дочернее состояние из состояния родительского компонента, использующего getDerivedStateFromProps для его обновления.Но я думаю, что я делаю это неправильно, так как значения обновляются в объекте внутреннего уровня, как будто внутри состояния есть объект уровня с именем state, я тоже пытался распространить его, но это не сработало.
Родительский компонент
import React from 'react';
import './App.css';
import Navbar from './components/Navbar';
class App extends React.Component {
state = {
name: 'Kannan',
countryCode: '',
mobile: '',
isModalOpen: false,
};
render() {
return (
<div className="App">
<Navbar params={this.state}></Navbar>
</div>
);
}
}
export default App;
Дочерний компонент
class NavbarComponent extends React.Component {
constructor(props) {
super(props);
console.log(props.params);
this.state = {};
}
static getDerivedStateFromProps(props, state) {
console.log(state);
return { state: props.params };
// return {state: { ...props.params }} ;
}
render() {
console.log(this.state);
return (
<div>
"Something"
</div>
);
}
}
Я пробовал с {state: ... props.params}, а также {state: props.params} в рендере console.log получаю
{state: {…}}
state: {name: "Kannan", countryCode: "", mobile: "", isModalOpen: false}
__proto__: Object
то, что я ожидаю
state: {name: "Kannan",countryCode:"",mobile:"",isModalOpen:false}
Примечание: Нет REDUX .Я не хочу использовать REDUX Если есть какой-либо другой лучший способ обновить состояние дочернего компонента?Кроме того, я хотел бы знать, является ли поддержание состояния для каждого дочернего компонента хорошей практикой или нет?Любая помощь приветствуется