【发布时间】:2017-07-01 02:57:28
【问题描述】:
当我使用反应路由器渲染某些组件时,我需要重新加载我的页面。我需要这个,因为我需要一个 JavaScript 脚本来再次加载并检测具有特定 id 的特定表单标签。如果我不重新加载页面,脚本永远不会检测到表单的 ID。 (此脚本对表单进行了一些验证)。
如果我从我的主组件(根)转到联系人组件,则脚本不起作用(我可以发送带有空字段的表单)。但是,如果我从家里转到联系人组件,然后重新加载页面,脚本就会开始工作。
这是我在渲染主页并且脚本未检测到表单 ID 时遇到的错误:
form-submission-handler.js:162 Uncaught TypeError: Cannot read property 'addEventListener' of null at HTMLDocument.loaded (form-submission-handler.js:162)
这就是用来检测id的:
function loaded() {
console.log('contact form submission handler loaded successfully');
// bind to the submit event of our form
var form = document.getElementById('gform');
form.addEventListener("submit", handleFormSubmit, false);
};
document.addEventListener('DOMContentLoaded', loaded, false);
所以,如果我重新加载页面,form-submission-handler 脚本可以检测到表单。
Here 是一个页面,您可以在其中复制正在发生的事情。只需转到“联系人”部分,它位于导航栏中。
表单提交处理程序脚本位于我的 index.html 文件中的标记之前的脚本标记内,应用程序在此呈现。
【问题讨论】:
标签: reactjs react-router reload