以下代码中的this.setState({allInit})完全相同的行适用于字符串和数字状态(viewMode或numberInit),但不适用于数组(allInit或Initiative)。 整个早晨搜索失败后,任何提示将不胜感激!
export class ContextProvider extends Component {
constructor(props) {
super(props);
this.state = {
allInit: [],
initiatives: [1, 2, 3],
viewMode: 'map',
numberInit: 248
};
}
componentDidMount() {
fetch('../../json/allinit.json')
.then(res => res.json())
.then(({ allInit }) => {
this.setState({ allInit }); //this line does not work for array value
console.log(allInit); // Array of 208 objects
});
}
render() {
console.log(this.state.allInit); // empty array []
return (
<Context.Provider value={this.state}>
{this.props.children}
</Context.Provider>
);
}
}