jQuery 在 React 中不工作

标签 jquery reactjs

我想在我的 React 应用程序中使用 SimplyScroll jquery。我在我的index.html 文件中添加了它的CSS 和jquery 文件。我还在结束 body 标记之前编写了下面的代码,但它不起作用。

<script type="text/javascript">
  (function ($){
    $(function (){
      $("#scroller").simplyScroll();
    });
  })(jQuery);
</script>

如果我在浏览器的控制台中运行 $("#scroller").simplyScroll(); ,即使我返回并进入当前页面, slider 也可以正常工作。 有人可以帮助我解决这个问题,或者建议更好的方法来实现 react 。

最佳答案

问题是您的脚本将在 React 应用完成渲染之前执行。这意味着您的脚本将查找 #scroller 节点,但不会找到它,因为它尚未被 React 渲染。

这里的技巧是在 React 组件完成安装之后执行此操作。所以试试这个:

componentDidMount() {
  $("#scroller").simplyScroll();
}

请记住,您可能必须通过包管理器(例如 npm 或yarn)安装 jQuery。然后你还需要将 jQuery 导入到你的组件中:

import $ from 'jquery';
<小时/>

示例

只是一个如何将 jQuery 集成到 React 组件中的一般示例。在这里,我们将内部文本“foo bar”添加到我们的#contents div元素中。

class MyApp extends React.Component {

  componentDidMount() {
    $("#contents").html("foo bar");
  }

  render() {
    return(
      <div id="contents" />
    );
  }
}
 
ReactDOM.render(<MyApp />, document.getElementById("app"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div id="app"></div>

关于jQuery 在 React 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078329/

相关文章:

javascript - 获取某个 JSON 对象字段的值

javascript - PHP逻辑到Javascript前端转化成html标签

javascript - 在 ReactJS 中使用表单的最佳实践是什么?

javascript - reactjs - 如何设置边框样式?

javascript - 如何使按钮在函数运行后可见。 react native

javascript - 如何使 Javascript 对象在函数外部可用?

javascript - 如何从服务器端javascript获取来自不同域的.txt文件并将其获取客户端

生成可编辑 "tags"的javascript库/jquery插件

javascript - 从 Dictionary React js 中删除项目的最佳方法

javascript - Reactjs - 对状态中的对象数组进行排序