推送者在提交時發送消息兩次。我沒有看到任何函數被重復或調用兩次,但這仍然會發生我正在使用 React v18.1.0 我正在使用 Golang 1.18import React, { useState, useEffect } from "react";import Pusher from "pusher-js";function App() { const [username, setUsername] = useState('username'); const [messages, setMessages] = useState([]); const [message, setMessage] = useState(''); let allMessages = []; useEffect(() => { Pusher.logToConsole = true; const pusher = new Pusher('-', { cluster: '-' }); const channel = pusher.subscribe('chat'); channel.bind('message', function (data) { allMessages.push(data); setMessages(allMessages); }); }, []); const submit = async e => { e.preventDefault(); await fetch('http://localhost:8000/api/messages', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ username, message }) }); setMessage(''); } return ( <div className="container"> <div className="d-flex flex-column align-items-stretch flex-shrink-0 bg-white"> <div className="d-flex align-items-center flex-shrink-0 p-3 link-dark text-decoration-none border-bottom"> <input className="fs-5 fw-semibold" value={username} onChange={e => setUsername(e.target.value)}/> </div>
1 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
好,我知道了。我將我的 App.js 包裹在 index.js 中的 React Strict Mode 中。這導致我的頁面渲染 2 次,因為 useEffect 函數運行了兩次。因此,如果有人遇到此問題,請確保您沒有使用 React Strict Mode
- 1 回答
- 0 關注
- 79 瀏覽
添加回答
舉報
0/150
提交
取消