私は表示したいドロップダウンに問題があります。私のメインクラスはドロップダウンクラスを呼び出すと、コンポーネントウェイマウント()がフェッチを開始しますが、フェッチがその情報を取得している間にrender()が開始し、結果がまだフェッチされていないのでinfoがまだヌルであるためエラーが発生します。誰もがこれを解決する方法のアイデアを得た私の髪を別のアプローチでリッピングしています。Asyncは、componentWillMountが反応する前にレンダリングトリガーを作成しますか?
export class Dropdown extends React.Component{
constructor() {
super();
this.state = {
info: null
}
}
componentWillMount() {
fetch("http://localhost:8081/getUsers")
.then(res => res.json())
.then(info => {
this.setState({info})
console.log(info['mta:getUsersResponse']['mta:users']);
})
}
render(){
const info = this.state.info;
console.log(info);
let menuItems = [];
for (var i = 0; i < info['mta:getUsersResponse']['mta:users'].length; i++) {
menuItems.push(<MenuItem eventKey="[i]">info['mta:getUsersResponse']['mta:users']['mta:FullName'][i]</MenuItem>);
}
return (
<DropdownButton bsStyle="primary" title="Users" key="dropdown1" id="1">
<MenuItem eventKey="1">Action</MenuItem>
{menuItems}
</DropdownButton>
);
}
}
は、あなただけのnullでレンダリングできませんか? – Axnyff