Javascript 使用react native上的静态数据编辑文本输入

Javascript 使用react native上的静态数据编辑文本输入,javascript,reactjs,react-native,Javascript,Reactjs,React Native,当使用this.state使用文本输入时,给值一个状态变量并不重要,您可以编辑该值,在我的例子中,我正在呈现一个列表,当我指定文本输入的值时,我无法再编辑该值,因为它不在状态范围内,我不想使用占位符来显示该值,我需要一种方法将其作为值,但也能够编辑该值 <TextInput keyboardType='decimal-pad' value={String(roomData.room_attached_dimensions.depth)} onChangeText={(value

当使用this.state使用文本输入时,给
一个状态变量并不重要,您可以编辑该值,在我的例子中,我正在呈现一个列表,当我指定文本输入的
时,我无法再编辑该值,因为它不在状态范围内,我不想使用占位符来显示该值,我需要一种方法将其作为值,但也能够编辑该值

<TextInput
  keyboardType='decimal-pad'
  value={String(roomData.room_attached_dimensions.depth)}
  onChangeText={(value) => this.handleRoomEdit(value)}
/>
该函数没有任何特殊功能

  handleRoomEdit = (value) => {
    this.setState({ roomEdit: true, value: value })
  }

当然,我有不同的输入,我不能简单地给它们不同的名称,数据存储在
asyncStorage
上,即使我编辑了阵列,它也不会工作,除非我重新安装该死的组件好的,有你的错误。您没有使用状态处理输入的值。这就是它不起作用的原因。你可以这样做-

<TextInput
  keyboardType='decimal-pad'
  value={this.state.value || String(roomData.room_attached_dimensions.depth)}
  onChangeText={(value) => this.handleRoomEdit(value)}
/>

好吧,你错了。您没有使用状态处理输入的值。这就是它不起作用的原因。你可以这样做-

<TextInput
  keyboardType='decimal-pad'
  value={this.state.value || String(roomData.room_attached_dimensions.depth)}
  onChangeText={(value) => this.handleRoomEdit(value)}
/>

你能添加更多的代码吗?比如说
this.handleRoomEdit
做什么?如果您可以为整个组件添加代码会更好。我添加了更多详细信息,字符串有问题(…)您可以添加更多代码吗?比如说
this.handleRoomEdit
做什么?如果您可以为整个组件添加代码会更好。我添加了更多详细信息,字符串有问题(…)谢谢我认为默认值是一个很好的建议,它起作用了,我无法将值指定为this.state.value,因为变量太多,这将改变我们的一切them@usfslk我认为你应该用一个状态值处理一个输入。如果为它们指定唯一的名称,则可以使用动态
[name]
属性处理所有它们。我很高兴它对你有用。干杯。:)我知道名称技巧,这次我不需要在前端更新var,所有的数据处理都是在函数上执行的。感谢我认为默认值是一个很好的建议,它起了作用,我只是不能将值指定为this.state.value,因为变量太多,这将改变我们的一切them@usfslk我认为你应该用一个状态值处理一个输入。如果为它们指定唯一的名称,则可以使用动态
[name]
属性处理所有它们。我很高兴它对你有用。干杯。:)我知道名称技巧,这次我不需要在前端更新var,所有的数据处理都是在函数上执行的
<TextInput
  keyboardType='decimal-pad'
  defaultValue={String(roomData.room_attached_dimensions.depth)}
  value={this.state.value}
  onChangeText={(value) => this.handleRoomEdit(value)}
/>
  handleRoomEdit = (value) => {
    this.setState({ roomEdit: true, value }) //use ES6 shorthand //
  }