【发布时间】:2020-11-24 15:47:04
【问题描述】:
我正在做一个项目,当我点击一个按钮时,我尝试使用 React 来渲染一些组件。我是 React 和 JavaScript 的新手,所以有点困惑。单击按钮时,我设置了组件的状态,但它不会重新呈现。我的代码:
import React, {PureComponent} from "react";
import {render} from "react-dom";
let websocket = new WebSocket("ws://localhost:8081");
let scenarios = [];
websocket.onopen = function(){
console.log("Frontend client connected");
websocket.send("Get all scenarios available");
}
websocket.onmessage = function(event){
const receivedMessage = event.data;
if(receivedMessage.includes("Available scenarios")){
scenarios = receivedMessage.split("/");
console.log(scenarios);
}
}
class App extends PureComponent{
state = {
scenariosReceived: false
};
handeStartClick = () => {
this.setState({
scenariosReceived : true
})
};
render()
{
return(
<div id="container">
<button onClick={this.handeStartClick.bind(this)}>Start</button>
{this.scenariosReceived? (
<ol className="scenarios_list">
<li><button onClick={this.handleScenarioSelection}>{scenarios[1]}</button></li>
<li><button onClick={this.handleScenarioSelection}>{scenarios[2]}</button></li>
<li><button onClick={this.handleScenarioSelection}>{scenarios[3]}</button></li>
<li><button onClick={this.handleScenarioSelection}>{scenarios[4]}</button></li>
<li><button onClick={this.handleScenarioSelection}>{scenarios[5]}</button></li>
<li><button onClick={this.handleScenarioSelection}>{scenarios[6]}</button></li>
<li><button onClick={this.handleScenarioSelection}>{scenarios[7]}</button></li>
</ol>
) :(console.log("No scenarios received"))
}
</div>
);
}
}
任何想法都会有所帮助。非常感谢!
【问题讨论】:
标签: javascript reactjs button components rendering