0
おはよう!私は動的なドロップダウンメニューをしたい、魔女はサーバーからデータを取得します。だから、メニュー項目をクリックしたら、サーバーからデータを取得し、結果をリストに表示したいと思います。このように:React - Reduxでデータを取得して再レンダリングする
import React, {Component} from 'react'
import {connect} from 'react-redux'
import {fetchData} from 'actions'
class MenuItem extends Component {
constructor(props) {
super(props);
this.state = {
isOpened: false,
}
}
toggleOpen() {
this.props.fetchData(); // Here is fetching data using redux-thunk
this.setState({isOpened: !this.state.isOpened});
}
render() {
const {data} = this.props;
return (
<a href="#" className="left-menu__link"
{...(this.state.isOpened && {
className: "left-menu__link is-opened"
})}
onClick={(e) => {
e.preventDefault();
this.toggleOpen.bind(this)();
}}>
<ul className="left-menu__sub-level">
{!R.isEmpty(data) && data.map((item) =>
<li item={item} key={item.id}/>)}
</ul>
)
}
const mapStateToProps = state => ({
data: getData(state), // get data from state
});
const mapDispatchToProps = {
fetchData
};
export default connect(mapStateToProps, mapDispatchToProps)(MenuItem)
これを行うにはどのような方法が良いのですか?
は、サンクアクションから約束を返し、コールバックセットisOpened状態 –