javascript - React.js,在 App.js 中添加与 .jsx 页面相关的事件监听器
问题描述
我正在使用 react.js 和 socket.io 创建一个应用程序,我想将事件侦听器添加到我的 app.js 中,它与我的 index.jsx 文件中的 html 组件相关联。
这是我的 App.js 代码
import React, { Component } from 'react';
import io from 'socket.io-client';
import{
BrowserRouter as Router,
Route,
Switch,
Link,
Redirect
} from "react-router-dom";
//pages
import MainPage from "./pages/index"
const socket = io.connect('http://localhost:4000');
class App extends Component{
render(){
return <Router>
<Switch>
<Route exact path="/" component={MainPage}
</Router>
}
}
export default App;
这是我的 index.jsx 代码
import React from 'react';
import { Link } from 'react-router-dom';
const MainPage = () => {
return(
<div>
<h1>In main page</h1>
<button id="button">
SPOMBER
</button>
</div>
);
}
export default MainPage;
通常,您只需通过在 <script 标记中添加事件侦听器或使用 <script src="fileName.js" 并将事件侦听器添加到 fileName.js 来引用一段 html 代码。有没有办法引用 app.js 中的 index.jsx 代码来使用事件侦听器并根据 socket.io 服务器和客户端之间传递的数据编辑 html 组件?有没有类似的东西可以工作(注意上面的几行“导出默认应用程序;”)...
import React, { Component } from 'react';
import io from 'socket.io-client';
import{
BrowserRouter as Router,
Route,
Switch,
Link,
Redirect
} from "react-router-dom";
//pages
import MainPage from "./pages/index"
const socket = io.connect('http://localhost:4000');
class App extends Component{
render(){
return <Router>
<Switch>
<Route exact path="/" component={MainPage}
</Router>
}
}
const button = documetn.getelementbyid("button");
button.addeventlistener('click', () => {
console.log("button clicked");
})
export default App;
任何解决方案将不胜感激,谢谢
解决方案
在 React 中,要向按钮添加事件侦听器,您应该执行以下操作index.jsx
:
import React, { useCallback } from 'react';
import { Link } from 'react-router-dom';
const MainPage = () => {
const handleClick = useCallback((e) =>{
console.log("button clicked");
}, []);
return(
<div>
<h1>In main page</h1>
<button id="button" onClick={handleClick}>
SPOMBER
</button>
</div>
);
}
export default MainPage;
在此处查看更详细的指南: https ://reactjs.org/docs/handling-events.html
推荐阅读
- css - CSS Flex 的动画根据内容高度变化
- c# - Process.StartTime 访问被拒绝(.Net Core)
- reactjs - GraphQL 请求错误 - 未知参数“slug”
- c++ - 重新定义错误可能导致分段错误问题(1 文件)
- google-apps-script - 如何在 Google 表格中获取单元格的字体颜色?
- python - 用python从csv字典写入csv文件
- c++ - 有没有办法使用 Visual Studio 在 Xcode 中打开一个克隆的 git 项目?
- php - PHP - 返回带有用户数据的 URL 的搜索框
- pagination - TYPo3 9.5.5 中的默认分页小部件仅显示第一个结果
- java - 我在本地主机上的数据库和使用 Java 在线开发的网站的连接 URL 应该是什么?