【发布时间】:2018-04-27 19:02:36
【问题描述】:
这就是我的渲染函数的样子
render() {
const { Ether } = this.state;
return (
<div>
<Container text>
<Form onSubmit={this.handleSubmit}>
<Label>Ether Value</Label>
<Input
name="Ether"
value={Ether}
onChange={this.handeleChange}
placeholder="Enter Ether"
/>
<Button type="Submit">ADD PLAYER TO LOTTERY</Button>
</Form>
<Button onClick={this.pickWinner}>PickWinner</Button>
</Container>
</div>
);
}
这是我的handleChange
handeleChange = (e, { name, value }) => {
this.setState({
[name]: value
});
};
- 根据对反应的了解,组件被重新渲染,每个 我设置状态的时间。所以我的 onChange 处理程序不应该导致 多次渲染,因为我不断在输入框中输入。
-
这是我的componentdidMount
async componentDidMount() { const Manager = await lottery.methods.manager().call(); const Players = await lottery.methods.getPlayers().call(); const Balance = await web3.eth.getBalance(lottery.options.address); this.setState({ Manager, Balance, Players }); }我希望它工作的方式是,每次我点击提交时,我都希望调用 componentdidmount,即重新渲染组件,但这不是发生的事情。
我在这里缺少什么?组件渲染还有什么我还没有掌握的吗?
【问题讨论】:
-
Input组件是如何定义的?您确定它按照您的预期将name和value参数传递给您的handleChange? -
如果你举个例子here我帮你看看。
-
那么您是否希望在您键入或单击提交时更新状态?不清楚。
-
@Colin 请停止在每个标记为
reactjs的问题下发送垃圾邮件。 -
@trixn 这不是垃圾邮件,我只会在我可以运行它的情况下轻松修复他们的代码时发布它。如果我可以通过阅读来解决它,我不要求示例。
标签: reactjs