首页 新闻 会员 周边

关于react组件渲染的问题,异步请求数据,props传入数据到组件,组件中怎么默认选中数组第一个

0
悬赏园豆:60 [已解决问题] 解决于 2017-09-20 12:13

有一个组件,上代码

<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不能更改数据,否则死循环。

求大神教。

张泰峰的主页 张泰峰 | 初学一级 | 园豆:20
提问于:2017-09-18 11:23
< >
分享
最佳答案
0

谢谢 我使用一个jquery,在页面加载完手动触发事件解决的 

张泰峰 | 初学一级 |园豆:20 | 2017-09-20 12:12
其他回答(1)
0

你换一个思路,数据列表是一个属性,选择是另外一个属性。问题是否可以迎刃而解?

收获园豆:60
爱编程的大叔 | 园豆:30839 (高人七级) | 2017-09-18 11:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册