setSate
にcomponentDidMount()
を入力しようとしていますが、状態が変更されていません。私は以下のように状態を宣言:ReactネイティブsetStateがcomponentDidMountで機能しない
constructor(props) {
super(props);
this.state = {
links: [],
personalInfo: {
name: "",
phone: "",
email: "",
address: {
city: "",
state: "",
country: "",
},
},
statement: "",
editMode: false,
superEditMode: false,
}
}
そして、私のcomponentDidMountは以下の通りである:予想通りthis.state.personalInfo
this.state.address
this.state.statement
がprops
から新しい状態に設定されていることを非常に奇妙である
componentDidMount() {
if (this.props.data) {
this.props.data.personalInfo ? this.setState({personalInfo: this.props.data.personalInfo}) : null
this.props.data.address ? this.setState({address: this.props.data.address}) : null
//this.props.data.links ? this.setState({links: this.props.data.links}) : null
//console.log((this.props.data.links ? true : false));
this.setState({links: [
{
linkType: "Portfolio",
linkAddress: "www.johndoe.com",
},
{
linkType: "Github",
linkAddress: "https://github.com/johndoe",
},
{
linkType: "LinkedIn",
linkAddress: "https://linkedin.com/johndoe",
},
]});
console.log(this.state.links);
this.props.data.statement ? this.setState({statement: this.props.data.statement}) : null
}
が、this.state.links
初期状態である。
setStateはasyncです。コンソールの通常の直後にconsole.logに表示されない場合。コールバックを使用します。 – bennygenel