javascript - 类型错误:this.$el.bracket 不是函数
问题描述
我已经尝试了几个小时能找到的每一个答案......非常感谢任何帮助!
我正在尝试在我的反应组件中使用jQuery Tournament Bracket 。我已经尝试像import $ from "jquery";
预期的那样导入 jquery,但是当我这样做时import "jquery-bracket/dist/jquery.bracket.min.js"
,甚至import "jquery-bracket"
我在浏览器上看到以下错误。
TypeError: this.$el.bracket is not a function
我按照本教程学习了如何在 React 中实现 jQuery 插件。下面是我所指的组件的代码。
import React from 'react';
import axios from 'axios';
import $ from "jquery";
// Tried //
// import jQueryBracket from "jquery-bracket/dist/jquery.bracket.min.js";
// import "jquery-bracket/dist/jquery.bracket.min.js";
// Currently using //
import "jquery-bracket/dist/jquery.bracket.min.js";
class Bracket extends React.Component {
constructor(props) {
super(props);
this.state = {
teams: "",
scores: ""
};
}
componentDidMount() {
let minimalData = {
teams: [
["Team 1", "Team 2"],
["Team 3", null],
["Team 4", null],
["Team 5", null]
],
results: [
[
[[1, 0], [null, null], [null, null], [null, null]],
[[null, null], [1, 4]],
[[null, null], [null, null]]
]
]
}
let resizeParameters = {
teamWidth: 100,
scoreWidth: 30,
matchMargin: 25,
roundMargin: 45,
init: minimalData
};
this.$el = $(this.el);
this.$el.bracket(resizeParameters);
// $("#bracket").bracket(resizeParameters);
}
render() {
return (
<>
<div ref={el => this.el = el}>Bracket goes here...</div>
{/*<div id="bracket"></div>*/}
</>
)
}
}
export default Bracket;
解决方案
jquery.bracket.min.js
我没有从那里导入node_modules
给我带来很多麻烦,而是尝试移动jquery.bracket.min.js
到组件目录。我不知道为什么,但是在我修复了导入问题之后,又eslint
抛出了很多错误。为了eslint
暂时修复错误,我在顶部添加了以下行jquery.bracket.min.js
/* eslint-disable no-unused-expressions */
推荐阅读
- flutter - 如何在不使用任何插件的情况下添加 2 个色调图标?
- python - Python:NLTK - 正则表达式标记器产生空输出
- javascript - 货币在具有相同语言环境的 iOS 和 android 上的格式不同
- android - 我怎样才能通过只使用一个 xml 标签来做到这一点
- java - 使用 http 客户端发布 tar.gz 文件时出错,但使用 curl 命令可以正常工作
- ssl - 错误“ERR_INVALID_REDIRECT”到表单登录
- pandas - 在 Pandas 中仅删除行中的第一个值
- laravel - 如何同时删除order和order_mapping表数据
- angular - 在 Angular 中动态更改类
- java - JSON-B 的循环引用问题