onClick正在开火

 l夜幕下的流星雨l 发布于 2023-01-11 13:28

我有以下reactJs组件:

var Pagination = React.createClass({

  // Basic pagination
  render: function() {
    // Do we have more then one page?
    if (this.props.maxPages > 0){
      var pageLink = this.props.maxPages;
      var liElements = []

      for (var i = 1; i <= pageLink; i++) {
          liElements.push(
  • {i}
  • ); } return (
      {liElements}
    ); }else{ // Return nothing. return (
    ); } } });

    每个li元素都有一个链接元素,每个元素都有一个onClick=...属性.传入的函数位于骨干视图中,并且其中包含console.log(id).当页面加载时,如果页面上有两个li,你可以将i变量吐出两次.如果单击其中一个li元素,也会发生这种情况.

    我的问题是 - 当我为x个li元素加载页面时,为什么onClick会触发?为什么当我点击一个li元素时它会i为每个li元素吐出变量?

    handlePaginate函数看起来像

    handlePaginate: function(id) {
      console.log(id); //=> 1,2 (for two li elements with id's of 1 and 2)
      return false; //=> doesn't actually stop the page from refreshing oO
    }
    

    user3379926.. 6

    事实证明,解决这个问题的方法是:

    onClick = {this.props.handlePaginate.bind(this, i)}
    

    在链接值中,这将停止分页事件的触发,并在单击li元素时停止刷新页面.

    1 个回答
    • 事实证明,解决这个问题的方法是:

      onClick = {this.props.handlePaginate.bind(this, i)}
      

      在链接值中,这将停止分页事件的触发,并在单击li元素时停止刷新页面.

      2023-01-11 13:30 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有