有一个组件,上代码
<API_test api={state.api}></API_test>
我在父组件里面请求了数据
$.get("/fuwu/detail/data/"+api_id,{},function(result){ //根据service分类聚合service result.api.api_service = self.ServiceGroupByClasses(result.api.api_service); self.setState({ api:result.api, detailTitle:result.api.api_detail.api_name ......
设置了state,组件自动渲染。
问题就出在这里。
这个数据是一个数组,我需要默认选中第一个元素,
我在组件内部使用的props.api.map 然后点击左侧菜单切换元素。
{ api.api_service[item].map(function(value,i){ return ( <li key={i} onClick={checkService} data-id={value.ser_id}> <div className={"method "+value.method}>{value.method}</div> <div className="detail textover" title={value.service_name+" "+value.path}> {value.service_name}<a>{value.path}</a> </div> </li> ) }) }
我想初始默认选中0,但是在循环里面判断0,点击切换的时候渲染的依然是0,难道必须分两个map么?componentDidMount只会在数据加载之前执行。componentUpdateMount不能更改数据,否则死循环。
求大神教。
谢谢 我使用一个jquery,在页面加载完手动触发事件解决的
你换一个思路,数据列表是一个属性,选择是另外一个属性。问题是否可以迎刃而解?