如何控制React Native的<textinput>的defaultValue?

时间:2016-10-04 06:09:05

标签: javascript css react-native textinput jsx

我有一个<TextInput/>设置了defaultValue,还有一个按钮,可以触发并将defaultValue <TextInput>传递到其他地方。

但是,如何将<TextInput/>的{​​{1}}传递给defaultValue的{​​{1}}方法?

这就是我想要实现的目标:

onPress

2 个答案:

答案 0 :(得分:3)

首先,render方法无法返回多个节点。我认为<TextInput/>应该由<TouchableHighlight/>组件包装,例如:

render() {

  return (
    <TouchableHighlight onPress={this.sendOff}>
      <TextInput 
        defaultValue='PassMeIn' 
        onChange={this.changeName} 
        value={this.state.nameNow}
      />
    </TouchableHighlight>    
  )
}

这样就可以将道具从<TouchableHightlight>传递到<TextInput以用作defaultValue,并且您可以在<TouchableHighlight>中访问它} 零件。

答案 1 :(得分:2)

您可以将defaultValue存储在新状态中,然后可以在两个位置访问它

constructor(props) {
 super(props);
 this.state = {
  //...other state
  defaultValue: "PassMeIn"
 };

//...other code

sendOff() {
  //...do things with this.state.defaultValue
}

render() {

  return (
    <TextInput 
        defaultValue={this.state.defaultValue} 
        onChange={this.changeName} 
        value={this.state.nameNow}
    />
    <TouchableHighlight onPress={this.sendOff}/>
)
}