首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在同一项目中使用React、jQuery和MaterializeCSS?

如何在同一项目中使用React、jQuery和MaterializeCSS?
EN

Stack Overflow用户
提问于 2020-04-16 01:30:26
回答 1查看 81关注 0票数 0

我是一个比较新的实现,我想我可以用它来开发一个与ReactJS的项目。不幸的是,看起来jQuery并不是React真正喜欢的。我试着写了一些虚拟代码,它只是用来显示Materialize提供的日期输入:

代码语言:javascript
运行
复制
import React, { Component } from 'react';
import $ from 'jquery';
import 'materialize-css';

class App extends Component {
   componentDidMount() {
     $(document).ready(function() {
       $('.datepicker').datepicker({
         disableWeekends: true
    });
  })
}
render() {
  return (
    <div className="App">
      <div className="input-field">
        <input type="text" id="date" className="datepicker" />
        <label for="date">Choose a date you need me for...</label>
      </div>
    </div>
  );
 }
}
export default App;

这最后一段代码不起作用,我得到

代码语言:javascript
运行
复制
TypeError: jquery__WEBPACK_IMPORTED_MODULE_1___default(...)(...).datepicker is not a function

我不是jQuery的狂热粉丝,所以如果我需要的话,我可以放弃它,但是有没有办法我仍然可以使用它的方法(我需要访问它的方法来实现)?

EN

回答 1

Stack Overflow用户

发布于 2020-04-16 14:40:15

jQuery不再是Materialize的依赖项,所以请使用普通的js初始化,而不是jQuery初始化:

代码语言:javascript
运行
复制
document.addEventListener('DOMContentLoaded', function() {
    var elems = document.querySelectorAll('.datepicker');
    var instances = M.Datepicker.init(elems,{
       disableWeekends: true
    });

  });

因为jQuery不再是一个依赖项,所以所有的方法都在插件实例上调用。您可以像这样获取插件实例:

代码语言:javascript
运行
复制
var instance = M.Datepicker.getInstance(elem);
instance.open();

https://materializecss.com/pickers.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61234942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档