为了账号安全,请及时绑定邮箱和手机立即绑定

react里点击方法效果实现延迟

react里点击方法效果实现延迟

白猪掌柜的 2019-02-26 21:13:30
下面是一个简单的分页功能:pagination.jsxrender() {        return (            <div className="pagination">                <span className=" tab prev">《</span>                {                    this.props.tabArr.map((item, index) => {                        return (                            <span key={index} className="tab" data-index={index} onClick={this.props.tabClick.bind(this,index)}>{index + 1}</span>                        );                    })                }                <span className="next">next ></span>            </div>        );    }index.jsx//import pagination.jsx tabClick(num) {    // const index = e.target.getAttribute('data-index');    const index =num;    console.log(index);      const arr = this.state.allDataArr;    this.setState({      startShowNum: index * 8,      showArr: arr.slice(this.state.startShowNum, (this.state.startShowNum + 8))    });  }问题:为什么tabClick方法里的index是跟着我点击时改变的,但是showArr(要展示的数组)却要延迟,当我点击第二次才会生效?
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

问题就是setState是异步的。


this.setState({

      startShowNum: index * 8,

      showArr: arr.slice(this.state.startShowNum, (this.state.startShowNum + 8))


    });

修改这段代码为:


this.setState({

      startShowNum: index * 8,

      showArr: arr.slice(index * 8, (index * 8 + 8))

    });


查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 704 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信