reactjs - reactjs用我的套接字日期填充组件
问题描述
您好,我想知道我如何填写 html 组件(h1、div 等)以对来自我在 nodejs 上的套接字的数据做出反应
这是我的前端代码:
render() {
return (
<div>
<h1 id="resultado"></h1>
<div id="player-1" class="user-panel">
<p>Nome: <span class="nome"></span></p>
<p>Pontos: <span class="pontos">0</span></p>
<div class="botoes">
<button>Pedra</button>
<button>Papel</button>
<button>Tesoura</button>
</div>
<div class="jogada"></div>
</div>
<br />
<br />
<br />
<div id="player-2" class="user-panel">
<p>Nome: <span class="nome"></span></p>
<p>Pontos: <span class="pontos">0</span></p>
<div class="botoes">
<button>Pedra</button>
<button>Papel</button>
<button>Tesoura</button>
</div>
<div class="jogada"></div>
</div>
<p id="espera"></p>
</div>
);
}
我想用类 id 将数据从我的套接字传递到我的组件
我知道在 html 中我会调用我的脚本并解决问题,但是在 nodejs 中会是什么样子?
解决方案
使用数据与任何其他 API 调用没有什么不同。只需在您的套接字事件处理程序中获取结果并根据需要对其进行操作。
下面是获取用户数据和更新将呈现用户列表的状态的示例。
let socket = null;
function App() {
const [users, setUsers] = useState([]);
function updateUsers(users) {
setUsers(users);
}
useEffect(() => {
function connect() {
socket = io('http://localhost:3000', {
autoConnect: false
});
socket.on('connect', () => {
socket
.emit('authenticate', {token: window.sessionStorage.getItem('token')})
.on('authenticated', () => {
socket.on('chat:users-get', (message) => {
updateUsers(message.data);
});
socket.emit('chat:users-get');
})
.on('unauthorized', (msg) => {
console.error(`socket not authenticated ${msg}`);
});
});
socket.open();
}
connect();
}, []);
return (
<div className="App">
<fieldset id="users-container">
<legend>Users Online</legend>
<div>{users.length} Online</div>
<ul>
{users.map(user => (
<li key={user.username}>{user.username}</li>
))}
</ul>
</fieldset>
</div>
);
}
推荐阅读
- r - “dgCMatrix”类的稀疏矩阵转换为数据帧,用于R中的同时回归
- css - 我对使用 CSS 时的空规则有疑问
- php - Php - $_GET 读取 url 并显示消息,但它不会正确读取 url
- cypress - 问:赛普拉斯灯具 - 无法读取未定义的属性
- omnet++ - OMNeT++:如何通过特定的无线接口发送数据包?
- python - Selenium 打开 Web 浏览器但不打开目标 url (InvalidArgumentException: Message: invalid argument)
- r - R; 滚动窗口:计算 3 个 previos 点的方位角,并将其与数据框中以下 3 个值的方位角进行比较
- webforms - 母版页徽标未显示在子文件夹内的新 Web 表单上
- python - 如何在 n 时间后通过阻塞解析解析页面?
- nginx - vlc 中 plablack 的 RTMP 视频点播 (vod) 问题