2015-10-27 3 views
1

В моем сценарии, сосредоточив внимание на TextInput, я перехожу на другую сцену с помощью навигатора (используя push), там я заполняю список, в этом списке выбирается одно значение, значение которого должно быть заполнено предыдущая сцена TextInput. В этом случае я не могу установить выбранное значение в предыдущую сцену TextInput.невозможно динамически присвоить значение TextInput, используя реакцию native

Моя структура кода

var FirstComponent = React.createClass({ 
    render:function(){ 
      return(<TextInput value="" placeholder="Enter value" onFocus={getData.bind(this)} />) 
     } 
}) 

function getData(ev){ 
var target = ev; 
     this.props.navigator.push({ 
      id:'SecondComponent', 
      name:'SecondComponent', 
      target:target, 
     }) 
} 
var SecondComponent = React.createClass({ 
     render:function(){ 
       return(<TouchableHighlight onPress={fillData.bind(this,target, self.props.navigator,selectedText)}><Text>sample</Text></TouchableHighlight>) 
     } 
}); 
function fillData(rootThis,nav,selectedText,ev){ 

    rootThis.value=selectedText; 
    rootThis.nativeEvent.target = selectedText; 
    rootThis.nativeEvent.target .text= selectedText; // Here ' rootThis ' is route object 'this' 

//how to fill selectedText in FirstComponent TextInput value 
} 

ответ

1

Прежде всего, вам не нужно больше использовать привязку, если вы проездом атрибут по умолчанию возвращается из компонента.

Во всяком случае, я хотел бы сделать что-то вроде этого:

first_component.js: 


var FirstComponent = React.createClass({ 
    getInitialState: function() { 
    value: "" 
    }, 

    render:function(){ 
    return(
     <TextInput value={this.state.value} placeholder="Enter value" onFocus={this.moveToSecondComponent} > 
    ); 
    }, 

    moveToSecondComponent: function() { 
    this.props.navigator.push({ 
     component: SecondComponent 
     onSelect: this.popBackAndUpdate // This assumes you are using Navigator. If you are using NavigatorIOS, just wrap it in 'passprops' 
    }) 
    }, 

    popBackAndUpdate: function(value) { 
    this.setState({value: value}); 
    this.props.navigator.pop(); 
    } 

}); 


second_component.js: 
var SecondComponent = React.createClass({ 
    render: function() { 
    return(
     <TouchableHighlight onPress={() => { this.props.route.onSelect("new value")}}> 
     <Text>sample</Text> 
     </TouchableHighlight>) 
    } 
}); 

Это главное, что во 2-й части вы просто передать новое значение в функции обратного вызова, и она будет трещать назад навигатор.

Надеюсь, что это поможет.

+0

thnks eyal83.in мое дело popBackAndUpdate функция вне компонента здесь как я могу получить FirstComponent это – satishkumar

+0

Извините, я не понимаю вопроса. Вы можете объяснить? – eyal83

+0

ok.how можно определить функцию popBackAndUpdate вне компонента. – satishkumar

Смежные вопросы