外部Javascript在react.js中不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了外部Javascript在react.js中不起作用相关的知识,希望对你有一定的参考价值。

我正在使用create-react-app创建一个反应应用程序。我在主index.html中有一些用于模板设计的外部javascript

 <script src="%PUBLIC_URL%/js/jquery-2.2.4.min.js"></script>
 <script src="%PUBLIC_URL%/js/common_scripts.js"></script>
 <script src="%PUBLIC_URL%/js/main.js"></script>
 <script src="%PUBLIC_URL%/js/owl.carousel.js"></script>

应用程序启动时,这些JS文件正在第一页上运行。但是,当从第一页重定向到其他页面时,这些库不起作用。根据我的理解,这些文件正在渲染,但是当路线改变时,它们的functions, variables, and methods无法访问。我正在使用react-router-dom v4进行路由。

我用Google搜索并找到了解决方案 - 通过ComponentDidMount()方法渲染JS库

ComponentDidMount()
    loadjs('./js/main.js', function()
    loadjs('./js/common_scripts.js)
    );
  

但即使这个解决方案也无效。请帮忙解决这个问题。

谢谢

答案

您正在使用componentWillMount()而不是componentDidMount()

我认为这是问题所在。

另一答案

你可以在window对象上设置js文件,然后你可以通过window.your_name来访问它。

您必须在索引文件中设置它

另一答案

尝试在import()中使用componentDidMount()

import()是自我解释的。它只是导入JavaScript文件。

import('your_URL')
另一答案

尝试使用window对象调用事件。参考<a href="https://github.com/facebook/create-react-app/issues/3007#issuecomment-357863643">Link</a>

另一答案

这就是我如何将Jquery导入我的创建反应应用程序

jQuery的:

  1. 首先运行npm install jquery
  2. index.js

import * as $ from 'jquery'

window.jQuery = window.$ = $

见:http://blog.oddicles.org/create-react-app-importing-bootstrap-jquery-cleanly-node-js/

或者,您可以将脚本附加到窗口对象,然后根据需要调用它们:

请尝试以下步骤:

包括/public/index.html中的外部js文件链接使用带有前缀窗口的外部库。例如,JQuery。

将以下行放在/public/index.html中

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>`

在你的项目中使用它:

window.$("#btn1").click(function()
    alert("Text: " + $("#test").text());
);

`

有关详细信息,请参阅此

https://github.com/facebook/create-react-app/issues/3007

以上是关于外部Javascript在react.js中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

命名路径在 react-router-dom react js 中不起作用

Axios 发布请求在 React JS 中不起作用

引导模式在 React JS 中不起作用

如果指定了文本颜色,则禁用按钮在 React JS 中不起作用

React.js 地理位置在 iPhone/Android 上的浏览​​器中不起作用

http-proxy-middleware 代理在 React js 和 Spring Boot 项目中不起作用。 GET API 返回 415 状态错误