【发布时间】:2020-06-13 17:31:40
【问题描述】:
我正在通过尝试做一个美食应用程序来学习对 expo 的原生反应。现在我正在构建附加屏幕,客户可以在其中添加奶酪、培根等到他的订单中。要呈现我正在使用 SectionList 的选项。一切看起来都不错,但是我如何正确编码加号和减号按钮逻辑,以便它更改“0”?以及如何读取这些值并乘以每个价格以获得正确的 ORDER NOW 值?我现在真的迷路了。
import React, { Component } from 'react';
import { Container, Header, Title, Content, Footer, FooterTab, Button, Left, Right, Body, Icon, Text,Thumbnail, CheckBox, View, Image, Input, StyleProvider,Form, Label, Item, ListItem, Badge, List, Textarea, Segment } from 'native-base';
import { StyleSheet, ImageComponent, SectionList } from 'react-native';
import { Col, Row, Grid } from 'react-native-easy-grid';
import { Entypo, Feather, FontAwesome5, MaterialCommunityIcons, FontAwesome, MaterialIcons, AntDesign } from '@expo/vector-icons';
import { RFPercentage, RFValue } from "react-native-responsive-fontsize";
import {widthPercentageToDP as wp, heightPercentageToDP as hp} from 'react-native-responsive-screen';
const Extra = ({ item }) => (
<View style={styles.item}>
<Body style={styles.bodylistaextra}>
<Text style={styles.nomeextra}>{item.name}</Text>
<Text note numberOfLines={1} style={styles.preçoextra}>{"$ " + item.preco}</Text>
</Body>
<View style={styles.viewQuantidade}>
<Button transparent >
<AntDesign name='minuscircleo' style={styles.iconediminuirextra}></AntDesign>
</Button>
<Form>
<Textarea style={styles.caixaquantidade} rowSpan={1} bordered placeholder="0" />
</Form>
<Button icon transparent >
<AntDesign name='pluscircleo' style={styles.iconeaumentarextra}></AntDesign>
</Button>
</View>
</View>
);
export default class ItemPSScreen extends Component {
render() {
const {route} = this.props;
const { item } = route.params;
return (
<Container>
<SectionList
ListHeaderComponent={
<Content>
<Thumbnail square style={styles.imagemitem} source={{uri: 'https://iguatemi.com.br/brasilia/sites/brasilia/files/styles/crop_blog_1920x720/public/2019-11/Madero%20%281%29_0.png?h=e6fdde1b&itok=CSnKh7nl'}} />
<View style={{width: wp('95%'), alignSelf:'center'}}>
<Text style={styles.tituloitem}>{item.name}</Text>
<Text style={styles.descricaoitem}>{item.descricao}</Text>
<Text style={styles.valoritem}>{"$ " + item.preco}</Text>
</View>
</Content>
}
sections={item.extraOptions}
keyExtractor={(item, index) => item + index}
renderItem={({ item }) => <Extra item={item} />}
renderSectionHeader={({ section: { title } }) => (
<List>
<ListItem itemDivider style={styles.itemdivisoria}>
<Text style={styles.header}>{title}</Text>
</ListItem>
</List>
)}
ListFooterComponent={
<Content>
<MaterialIcons name='chat' style={styles.iconeobservacao}></MaterialIcons>
<Text style={styles.textoobservacao} >Observações:</Text>
<Form>
<Textarea style={styles.caixaobservacao} rowSpan={5} bordered placeholder="Tirar cebola, tirar o molho, sem sal, etc." />
</Form>
<Button style={styles.botaopedir}>
<Text style={styles.textopedir}>ORDER NOW</Text>
<Text style={styles.valortotalpedido}>{"$ " + item.preco}</Text>
</Button>
</Content>
}/>
</Container>
);
}
}
感谢您的帮助!
【问题讨论】:
标签: javascript reactjs react-native logic expo