简体   繁体   English

如何将 jquery 转换为 reactjs 组件?

[英]how can I convert jquery to reactjs component?

I want to make carousel with custom pagination in "tiles style".我想用“瓷砖样式”的自定义分页制作轮播。 I'm using react slick lib.我正在使用反应光滑的库。

I found here a working demo which is using jquery:我在这里找到了一个使用 jquery 的工作演示:

HTML PART HTML 零件

<section class="slider">
<div data-title="title1" data-thumb="http://cdn.bulbagarden.net/upload/e/ec/001MS.png"><img src="http://cdn.bulbagarden.net/upload/c/c0/Spr_3f_001.png"></div>
<div data-title="title2" data-thumb="http://cdn.bulbagarden.net/upload/b/bb/004MS.png"><img src="http://cdn.bulbagarden.net/upload/e/e9/Spr_3f_004.png"></div>
<div data-title="title3" data-thumb="http://cdn.bulbagarden.net/upload/9/92/007MS.png"><img src="http://cdn.bulbagarden.net/upload/f/f8/Spr_3f_007.png"></div>
<div data-title="title4" data-thumb="http://cdn.bulbagarden.net/upload/0/0f/025MS.png"><img src="http://cdn.bulbagarden.net/upload/5/5b/Spr_3f_025.png"></div>
<div data-title="title5" data-thumb="http://cdn.bulbagarden.net/upload/d/de/133MS.png"><img src="http://cdn.bulbagarden.net/upload/a/a9/Spr_3f_133.png"></div>
<div data-title="title6" data-thumb="http://cdn.bulbagarden.net/upload/a/a7/151MS.png"><img src="http://cdn.bulbagarden.net/upload/3/33/Spr_3f_151.png"></div>

JQUERY JQUERY

$(".slider").slick({
        dots: true,
        arrows: false,
        infinite: false,
        slidesToShow: 2,
        slidesToScroll: 2,

//autoplay: true,
//dots: true
customPaging : function(slider, i) {
    var title = $(slider.$slides[i].innerHTML).find('div[data-title]').data('title');
    return '<a class="pager__item"> '+title+' </a>';
},

//responsive: [{ 
//    breakpoint: 200,
//    settings: {
///        d
//    } 
//}]

}); });

Full working demo here (jquery): https://codepen.io/neverov12/pen/OJLYpzm完整的工作演示(jquery): https://codepen.io/neverov12/pen/OJLYpzm

I want to convert from jquery to full reactjs, but no success.我想从 jquery 转换为完整的 reactjs,但没有成功。

What I've tried here (reactjs): https://codesandbox.io/s/dazzling-hugle-wtcht我在这里尝试过的(reactjs): https://codesandbox.io/s/dazzling-hugle-wtcht

You are using customPaging wrong, this callback function only have one parameter which is slide number.您使用customPaging错误,此回调 function 只有一个参数,即幻灯片编号。 I made it working in your given demo.我让它在你给定的演示中工作。 Here is full working code.这是完整的工作代码。

import React, { Component } from "react";
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";

export default class App extends Component {
  render() {
    const settings = {
      dots: true,
      infinite: true,
      speed: 500,
      slidesToShow: 2,
      slidesToScroll: 1,
      appendDots: (dots) => (
        <div
          style={{
            borderRadius: "10px",
            padding: "10px"
          }}
        >
          <ul> {dots} </ul>
        </div>
      ),
      customPaging: function (i) {
        return (<a className="pager__item">{i + 1}</a>)
      },
    };

    return (
      <div>
        <section className="slider">
          <Slider {...settings}>
            <div
              data-title="title1"
              data-thumb="http://cdn.bulbagarden.net/upload/e/ec/001MS.png"
            >
              <img alt="" src="http://cdn.bulbagarden.net/upload/c/c0/Spr_3f_001.png" />
            </div>
            <div
              data-title="title2"
              data-thumb="http://cdn.bulbagarden.net/upload/b/bb/004MS.png"
            >
              <img alt="" src="http://cdn.bulbagarden.net/upload/e/e9/Spr_3f_004.png" />
            </div>
            <div
              data-title="title3"
              data-thumb="http://cdn.bulbagarden.net/upload/9/92/007MS.png"
            >
              <img alt="" src="http://cdn.bulbagarden.net/upload/f/f8/Spr_3f_007.png" />
            </div>
            <div
              data-title="title4"
              data-thumb="http://cdn.bulbagarden.net/upload/0/0f/025MS.png"
            >
              <img alt="" src="http://cdn.bulbagarden.net/upload/5/5b/Spr_3f_025.png" />
            </div>
            <div
              data-title="title5"
              data-thumb="http://cdn.bulbagarden.net/upload/d/de/133MS.png"
            >
              <img alt="" src="http://cdn.bulbagarden.net/upload/a/a9/Spr_3f_133.png" />
            </div>
            <div
              data-title="title6"
              data-thumb="http://cdn.bulbagarden.net/upload/a/a7/151MS.png"
            >
              <img alt="" src="http://cdn.bulbagarden.net/upload/3/33/Spr_3f_151.png" />
            </div>
          </Slider>
        </section>
      </div>
    );
  }
}

Also for more about custom paging refer docs here - https://react-slick.neostack.com/docs/example/custom-paging有关自定义分页的更多信息,请参阅此处的文档 - https://react-slick.neostack.com/docs/example/custom-paging

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将具有切换 function 的 state 组件转换为 reactjs 中的无状态组件? - How can I convert a state component that has a toggle function to a stateless one in reactjs? 我如何将值从组件传递到ReactJS中的另一个组件 - How can i pass a value from a component to another component in ReactJS 如何在 ReactJS 中将类组件转换为函数式组件 - How to Convert a Class Component to a Functional Component in ReactJS 如何在 Reactjs 上调用可重用组件时更改属性的值? - How can I change the value of a property on the call of a reusable component on Reactjs? 我如何在React.js中向组件动态添加属性 - How can I dynamically add attributes to component in reactjs ReactJS - 如何使用javascript访问组件的displayName? - ReactJS - How can I access the displayName of a component using javascript? 在reactjs中,如何从另一个组件调用方法? - In reactjs how can I call a method from another component? 如何在不同的ReactJS组件实例中拥有不同的数据? - How can I have different data in different ReactJS Component instances? 如何在reactjs的不同组件中编写链接和路由 - How can I write Link and Route in different component in reactjs 如何在 ReactJS 的功能组件中管理 4 Checkbox 的状态? - How I can manage the state for 4 Checkbox in functional component in ReactJS?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM