为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 JS 代码放入 React 组件中

如何将 JS 代码放入 React 组件中

慕森卡 2022-05-14 15:17:47
我有一个 React 组件和我想放入其中的 JS 代码。我试过了,但完全搞砸了。有谁知道该怎么做?我的组件.js import React from "react";    import Navbar from "./Navbar";    const Chat = props => (      <div>              //Place for my Js code      </div>    );    export default Chat;javascript代码<script src="/socket.io/socket.io.js"></script>      <script>        var socket = io();        socket.on('message', function(msg){          console.log(msg);          document.getElementById("message").innerHTML = msg;        });      </script>
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

你应该从 npm 导入 socket.io 而不是在 React 中使用 script 标签。并添加代码


import io from "socket.io";


const Chat = props => {

  React.useEffect(() => {

    let socket = io();


    socket.on('message', function(msg) {

      console.log(msg);

      document.getElementById('message').innerHTML = msg;

    });

  }, []);


  return <div></div>;

};


查看完整回答
反对 回复 2022-05-14
?
四季花海

TA贡献1811条经验 获得超5个赞

您可以将代码包装在useEffect钩子中。一旦组件安装,它将触发。


您必须sockito.io从npm. 运行 >npm i socket.io-client


也添加了一些改进。


import React, { useEffect, useRef } from "react";

import io from "socket.io-client";

const Chat = props => {

    const socket = useRef(null);

    useEffect(() => {

        connectToSocket();

        return () => {

            if (socket.current) {

                socket.current.disconnect()

            }

        }

    }, []);

    function connectToSocket() {

        console.log("Conneting to socket");

        socket.current = io('http://localhost:5000');

        socket.current.on('connect', () => console.log("Connected"));

        socket.current.on('disconnect', () => connectToSocket());

        socket.current.on('message', function (msg) {

            console.log(msg);

            document.getElementById("message").innerHTML = msg;

        });

    }

    return (<div>

        Some data

        <div id="message"></div>

    </div>)

}

export default Chat;


查看完整回答
反对 回复 2022-05-14
  • 2 回答
  • 0 关注
  • 300 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信