Я пытаюсь передать переменную (я могу это сделать) и запустить функцию с этой переменной, как только произошла навигация.
Функция принимает значение поля ввода. Но из-за того, что я назначил поле ввода моей переменной, у меня возникли некоторые проблемы с методом рендеринга, потому что он перезаписывает данные после навигации или даже не записывает их. Он работает при ручном вводе, но мне нужно также передать эту переменную с камеры (это также отлично работает).
Главная страница
onChange(obj) {
const value = obj;
if (value) {
this.setState({
buttonDisabled: false,
text: value,
});
} else {
this.setState({
buttonDisabled: true,
text: ''
});
}
};
render() {
const { navigation } = this.props;
const scanCode = navigation.getParam('text', '');
return (
<View style={{padding: 30, paddingTop: 40}}>
<TextInput autoFocus
ref='queryInput'
style={{height: 40}}
placeholder="placeholder.."
value={scanCode === '' ? this.state.text : scanCode}
onChangeText={this.onChange.bind(this)}
onSubmitEditing={this.runQuery}
/>
<Button
onPress={this.runQuery}
title="run"
color="#841584"
accessibilityLabel="query"
disabled={this.state.buttonDisabled}
/>
<Button title='Camera' style={{position: 'absolute', bottom: 0, left: 0}} onPress={() => this.gotoCamera()}></Button>
</View>
);
}
};
Страница камеры
gotoMainPage = () => {
this.props.navigation.navigate('Home', {
text: this.state.qrcode
})
}
onBarCodeRead = (e) => this.setState({qrcode: e.data}, () => this.gotoMainPage());
возможно ли установить значение State на главной странице со страницы камеры или что мне здесь делать?
Спасибо