我是本机反应的新手。我创建了一个表格。那工作正常。但是现在我在表单输入字段中存储了一些值作为默认值。(我从服务器获取这个值) 我像这样存储为默认值
onChangeText={this.handlePlace} value = {this.state.Place} defaultValue={placeD} />
我像这样从服务器获取数据
const placeD = data.retail_information_data[0] ? data.retail_information_data[0].name_of_place : ''
在提交时,我正在检查这样的输入验证
if (!this.state.Place.trim())
{
this.setState({ PlaceError: 'Field Should Not Be An Empty' })
//alert(this.props.route.params.ltn2)
return;
}
现在的问题是当用户退出并以该形式再次出现时。那么假设用户只想编辑一个值,如名称。但是在我的情况下,当我只编辑一个值然后提交表单时,它会像这样抛出错误
TypeError: undefined is not an object (evaluating '_this.state.LegalName.trim') in react native
并且表单只会在我更改所有值时提交。但我希望如果用户只更改一个值,则还必须提交表单。
答案 0 :(得分:0)
您不能只在表单上设置默认值而不为状态变量设置相同的值,因为您正在验证代码中检查它。例如:
const placeD = data.retail_information_data[0] ? data.retail_information_data[0].name_of_place : ''
this.setState({ Place: placeD })
您需要对表单中的所有字段执行此操作。