2016-08-10 2 views
2

Я новичок в React Native. Моя проблема возникла при запросе события, щелкнув значок «Изображение». Я хочу, чтобы событие запроса происходило только с кнопки изображения. Но когда я нажимаю или нажимаю в любом месте экрана, он открывается. Что можно сделать для решения этой проблемы? В таблице стилей marginBottom и marginRight также не работают, поэтому я использую marginTop и marginLeft. Что можно сделать, чтобы решить эту проблему?Быстрое событие происходит от eveywhere на экране при записи на ленту

import React, { Component } from 'react'; 
import { 
AppRegistry, 
StyleSheet, 
Text, 
View, 
Image, 
TouchableHighlight 
} from 'react-native'; 

import ToolbarAndroid from 'ToolbarAndroid'; 
import Prompt from 'react-native-prompt'; 

class DevForm extends Component { 
    constructor(props) { 
    super(props); 
    this.state = { 
     message: '', 
     promptVisible: false 
    }; 
} 
render() { 
return (
    <View style = {styles.container}> 
    <ToolbarAndroid style = {styles.toolbar}> 
     <Text style = {styles.titleText}> Data Collector </Text> 
    </ToolbarAndroid> 

    <TouchableHighlight 
     onPress={() => this.setState({ promptVisible: true })} 
    > 
     <Image 
     source = {require('./icon_container/ic_plus_circle_add_new_form.png')} 
     style = {styles.addButton}  
     /> 
    </TouchableHighlight> 
    <View style = {{ flex: 1, justifyContent: 'center' }}> 
     <Text style = {{ fontSize: 20 }}> 
      {this.state.message} 
     </Text> 
     </View> 
     <Prompt 
     title = "Write title of form " 
     placeholder = "Your title is here" 
     visible = {this.state.promptVisible} 
     onCancel = {() => this.setState({ promptVisible: false, message: 'You cancel it !!!'})} 
     onSubmit={(value) => this.setState({ promptVisible: false, message: `You title is "${value}"` })} 
     /> 
    </View> 
); 
} 
} 


const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    backgroundColor: '#F5FCFF', 
    }, 
    toolbar: { 
    height: 56, 
    backgroundColor: '#3F51B5' 
    }, 
    titleText: { 
    fontSize: 16, 
    fontWeight: 'bold', 
    color: '#fff' 
    }, 
    addButton: { 
    marginLeft: 270, 
    marginTop: 420, 
    height: 50, 
    width: 50 
    } 
}); 

AppRegistry.registerComponent('DevForm',() => DevForm); 

ответ

0

Так что я мог понять, после запуска кода является то, что подсказка появляется диалоговое окно только в области, охватываемой MarginLeft и MarginTop не полный экран, если вы не имеете MarginLeft и MarginTop было бы трудно воспроизведите эту ошибку. Может быть, ошибка в библиотеке npm «response-native-prompt», которую вы используете в этом примере, кроме этого, я не уверен, что на самом деле происходит неправильно.

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

  • Нет связанных вопросов^_^