Как добавить кнопку в React Native?
Я путаюсь со всей этой "без CSS", но я понимаю, почему это выгодно. Все, что я хочу сделать, это разместить кнопку в середине экрана, но я не понимаю, как стиль работает в React. Это мой код:
var tapSpeed = React.createClass({
render: function() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Tap me as fast as you can!
</Text>
<View style={styles.button}>
!
</View>
</View>
);
}
});
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#FFCCCC'
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10
},
button: {
textAlign: 'center',
color: '#ffffff',
marginBottom: 7,
border: 1px solid blue,
borderRadius: 2px
}
});
Ответы
Ответ 1
Обновление: используйте встроенный компонент кнопки.
Устаревшие:
Оберните свой взгляд в TouchableHighlight для iOS и TouchableNativeFeedback для Android.
var {
Platform,
TouchableHighlight,
TouchableNativeFeedback
} = React;
var tapSpeed = React.createClass({
buttonClicked: function() {
console.log('button clicked');
},
render: function() {
var TouchableElement = TouchableHighlight;
if (Platform.OS === 'android') {
TouchableElement = TouchableNativeFeedback;
}
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Tap me as fast as you can!
</Text>
<TouchableElement
style={styles.button}
onPress={this.buttonClicked.bind(this)}>
<View>
<Text style={styles.buttonText}>Button!</Text>
</View>
</TouchableElement>
</View>
);
}
});
Ответ 2
Пакет react-native-button предоставляет кнопку, которая стилируется как встроенная кнопка. Установите его с помощью npm install react-native-button
и используйте его в своем компоненте следующим образом:
var Button = require('react-native-button');
var ExampleComponent = React.createClass({
render() {
return (
<Button
style={{borderWidth: 1, borderColor: 'blue'}}
onPress={this._handlePress}>
Press Me!
</Button>
);
},
_handlePress(event) {
console.log('Pressed!');
},
});
Ответ 3
Вы можете использовать встроенный элемент Button на основе реакции.
import React, { Component } from 'react';
import { StyleSheet, View, Button, Alert, AppRegistry } from 'react-native';
class MainApp extends Component {
_onPress() {
Alert.alert('on Press!');
}
render() {
return (
<View style={styles.container}>
<View style={styles.buttonContainer}>
<Button onPress={this._onPress} title="Hello" color="#FFFFFF" accessibilityLabel="Tap on Me"/>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#FFFFFF'
},
buttonContainer: {
backgroundColor: '#2E9298',
borderRadius: 10,
padding: 10,
shadowColor: '#000000',
shadowOffset: {
width: 0,
height: 3
},
shadowRadius: 10,
shadowOpacity: 0.25
}
})
AppRegistry.registerComponent('MainApp', () => MainApp);
![введите описание изображения здесь]()
Подробнее Здесь.
Ответ 4
Пожалуйста, проверьте реакция-родной документ относительно кнопок
У вас есть несколько способов добавить кнопку в приложение и стилировать ее
Вы можете использовать тег Button, и у него есть только один способ стилизации по атрибуту цвета, он будет отображаться в IOS, отличном от Android, или поместив кнопку в тег view со стилем
<View style={style.buttonViewStyle}>
<Button title="Facebook" color="blue" onPress={this.onFacebookPress} />
</View>
И проверьте теги TouchableOpacity и TouchableNativeFeedback
И сделайте блокировку по ссылке ниже, чтобы добавить дополнительные опции для добавления пользовательских кнопок в ваше приложение.
https://js.coach/react-native/react-native-action-button?search=button
Ответ 5
У вас есть две возможности для достижения сенсорного компонента/кнопки для обработки пользовательских событий.
- Один из них - использовать встроенный компонент
Button
. Проверьте документы здесь http://facebook.github.io/react-native/docs/button.html
- Два варианта:
TouchableHighlight
или TouchableNativeFeedback
или TouchableOpacity
или TouchableWithoutFeedback
. Подумайте об этом, чтобы вы могли конвертировать различные области вашего приложения в tappable (clickable) или способ создать пользовательскую кнопку.
Каждый компонент здесь различен в зависимости от того, как он ведет себя, когда пользователь прослушивает его. Проверьте документы для получения более подробной информации. http://facebook.github.io/react-native/docs/touchablewithoutfeedback.html и т.д.
Что касается стиля в реагировании на родной, вам нужно будет понять макет flexbox. Проверьте эту статью css flexbox, все правила применимы к response-native https://css-tricks.com/snippets/css/a-guide-to-flexbox/, за исключением того, что вам придется капитализировать правила, например align-content
до alignContent
Ответ 6
<Button
onPress={onPressLearnMore}
title="Learn More"
color="#841584"
accessibilityLabel="Learn more about this purple button"
/>
Вся информация о кнопке React Native