`import React, { Component, PropTypes } from 'react';
import { connect } from 'react-redux';
import { itemsFetchData,toggleDiv } from
'../actions/sidenavaction';
class SideNavItem extends Component {
componentDidMount() {
this.props.fetchData
('http://58f5d2ccc9deb71200ceecef.mockapi.io/nav');
}
render() {
var Nest=function(par) {
const numbers = par.itemized;
const listItems = numbers.map((number) => <li
key={number.sid}>{number.svalue}</li>);
return (<ul>{listItems}</ul>);
};
if (this.props.hasErrored) {
return <p>Sorry! There was an error loading the items</p>;
}
if (this.props.isLoading) {
return <p>Loading…</p>;
}
return (
<ul>{this.props.items.map((item) =>
<ul key={item.id} onClick=
{this.props.toggleDiv.bind(this,item.id)}><a href="#">
{item.value}</a>
{item.sub && <div style={{display: this.props.hidden ? 'block' :
'none'}}><Nest itemized={item.sub} /></div>}
</ul>
)}
</ul>
);
}
}
const mapStateToProps = (state) => {
return {
items: state.items,
hasErrored: state.itemsHasErrored,
isLoading: state.itemsIsLoading,
hidden:state.toggleDivReducer.hidden
};
};
const mapDispatchToProps = (dispatch) => {
return {
fetchData: (url) => dispatch(itemsFetchData(url)),
toggleDiv: (id) => dispatch(toggleDiv(id))
};
};
export default connect(mapStateToProps, mapDispatchToProps)
(SideNavItem);`
を反応させます{私は、ネストされたリストが隠されていないリストを読み込むときので、切り替えることが、どこ隠された小道具を適用するために実施したがリンクをクリックする上で、私は彼らにOnload the nested links are also visible whereas it should be hiddenは、IDを渡すにしてもでe.preventdefaultんし、私は私の行動mapdispatchtopropsにIDを渡すことができていますが、また、私はonclickのは、私はまた、クリックした上で要素にのみ解雇したいReduxの
アクション `エクスポート機能toggleDiv(ID)を切り替えることができていています 返品{ タイプ: 'TOGGLE_DIV'、 id:id
};
}`
減速 `エクスポート機能toggleDivReducer(状態= {隠さ: 真}、アクション){ スイッチ(action.type){
case 'TOGGLE_DIV':
return Object.assign({}, state, {hidden:
!state.hidden});
default:
return state;
}
}
のonClick = {this.props.toggleDiv.bind(これ、item.id)}、私は関数を書くことができますどのように行うにはイベントpreventdefaultと私のmapdispatchtopropsにIDを渡すとまた、私のトグルが期待どおりに動作していない、私はロード中にネストされた値も表示されているが、私はそれを非表示にするが、それもすべてのリンクに適用されている – Enthu
なぜ私はマップ関数の中に与えているので、onClickが適用されている理由を理解することができますが、誰も私がクリックした要素にのみ適用されるように私onClickを配置する必要がありますように助けてくださいpon – Enthu