我刚开始检查react表单。我遇到了一个问题,react在渲染中标记了我试图填充输入框标签的行。以下是我的应用程序代码:
import React, { Component } from 'react';
import './App.css';
import { Container, Row, Col, Input, Button, Fa, Card, CardBody } from 'mdbreact';
class App extends Component {
constructor(props) {
super(props);
this.state = {
name: {
valid: true,
value: '',
label: 'Your Name',
length: 0
}
}
this.saveData = this.saveData.bind(this);
}
saveData() {
let currentComponent = this;
var validData = true;
var locaName = {
valid: true,
value: '',
label: 'Your Name',
length: 0
}
locaName.value = document.getElementById("lblName").value;
locaName.length = locaName.value.length;
if (locaName.length < 1) {
validData = false;
locaName.valid = false;
locaName.label = "You need to enter your name";
}
if (validData == false) {
currentComponent.setState({ name:locaName });
}
}
render() {
return (
<div className="App">
<div className="d-flex flex-wrap justify-content-center position-absolute w-100 h-50 align-items-center align-content-center">
<Container>
<Row>
<Col md="6">
<Card>
<CardBody>
<form>
<p className="h4 text-center py-4">Sign up</p>
<div className="grey-text">
<Input id="lblName" label={this.name.label} icon="user" group type="text" />
<Input id="lblEmail" label="Your email" icon="envelope" group type="email" />
<Input id="lblConfirmEmail" label="Confirm your email" icon="exclamation-triangle" group type="text" />
</div>
<div className="text-center py-4 mt-3">
<Button color="cyan" onClick={() =>
{
this.saveData();
}}>Save</Button>
</div>
</form>
</CardBody>
</Card>
</Col>
</Row>
</Container>
</div>
</div>
)
}
}
export default App;
在这一点上,我所要做的就是用名称输入框的标签为“您的名字”来呈现表单,如果没有输入名称,则让react用名称输入框的标签为“您需要输入您的名字”来重新呈现表单。
非常感谢任何援助。
为了引用状态变量,您需要使用this.state.name
,我只在呈现函数中看到this.name
我知道我可以在呈现组件时传递。我还知道方法。但问题是,不太有用,因为我的组件不知道它的初始状态。我有。所以我想在渲染的时候传递它。 类似这样的内容(伪代码): 我该怎么办? 假设我有一个组件。当我第一次呈现它时,初始状态与数据库中当前注释的快照相对应。当用户包含注释时,该列表将发生更改,这就是为什么它应该是而不是。现在,为了呈现注释的初始快照,我应该将它传递给组件,因为它无法知道它。我感到困惑的是
我有一个数组列表 记录在子组件中,它返回给我初始数组。 从API更改数据后 如果我在函数中将该数组记录在父组件中,我将得到一个对象数组。 它正在更改 ,但子组件没有。 我该怎么办??
这里我遇到了的小问题。我知道这是一个异步函数。我也使用了SO示例中的一些示例,我在中获得了我的值,但这个值在状态中没有更新。 我需要在这里更改什么来获得更新的值。请给我任何建议。 这里在我的代码选项卡更改值应该更新为提交。 //代码
问题内容: constructor(){ super(); this.state = { address: { street:null, city:null, postalCode: null } }; } postalCodeChange(e){ this.setState.address.postalCode = e.target.value; console.log(this.state);
我正在处理这个FreeCodeCamp排行榜表,当单击突出显示的表头时,应用程序调用这个url https://fcctop100.herokuapp.com/api/fccusers/top/recent,或者这个https://fcctop100.herokuapp.com/api/fccusers/top/alltime,从而在过去30天或所有时间中得分最高的露营者之间进行排序。 我在这里的
我正在尝试在表FORNMAT中显示数据。数据来自API。我需要显示表一旦数据接收从api。我正在使用类组件。下面我给出了尝试的东西。 //下面是我的jsx //下面是我从api获取数据的函数 //下面是我的api输出