首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-Native-Android:按下一个按钮,将根据按下的按钮更改文本

React-Native-Android:按下一个按钮,将根据按下的按钮更改文本
EN

Stack Overflow用户
提问于 2018-12-18 14:10:50
回答 1查看 100关注 0票数 0

您好,我现在还在使用我的简单计算器,我已经得到了这组代码,它可以进行计算或函数/事件

代码语言:javascript
复制
export default class App extends Component {
constructor(props){
    super(props);
    this.state = {
        firstInput: '',
        secondInput: '',
        sum: 0,
        difference: 0,
        product: 0,
        quotient: 0,
        result: 0,
    };
}


//CALCULATIONS FORMULA

calculateSum = () => {
    const { firstInput, secondInput } = this.state;

    this.setState({
        sum: Number(firstInput) + Number(secondInput)
    });
}

calculateDifference = () => {
    const { firstInput, secondInput } = this.state;

    this.setState({
        difference: Number(firstInput) + Number(secondInput)
    });
}

calculateProduct = () => {
    const { firstInput, secondInput } = this.state;

    this.setState({
        product: Number(firstInput) + Number(secondInput)
    });
}

calculateQuotient = () => {
    const { firstInput, secondInput } = this.state;

    this.setState({
        quotient: Number(firstInput) + Number(secondInput)
    });
}



//stores input from user
storeFirstInput = (number1) => {
    this.setState({firstInput: number1})
}

storeSecondInput = (number2) => {
    this.setState({secondInput: number2})
}

这是我想要根据按下的按钮更改的文本

代码语言:javascript
复制
<View style={styles.answerContainer}>
                {/****** ANSWER HOVERING TEXT ******/}
                <Text 
                style = {{
                fontWeight: 'bold',
                fontSize: 30,
                color: '#242582',

                }}> 
                ANSWER: 
                </Text>

                {/****** RESULT OF USER INPUT ******/}
                <Text 
                style={styles.answerText}

                > 
                {this.state.sum}
                </Text>

            </View>

我有4个按钮,即+,-,*和/(和,差,积和商)

代码语言:javascript
复制
<View style={styles.buttonContainer}>
                {/****** ADD BUTTON CONTAINER ******/}
                <View Style={styles.addButtonContainer}>
                        <TouchableOpacity Style={styles.addButtonDesign} 
                        onPress={this.calculateSum}
                        >
                                <Text style ={styles.buttonText}> + </Text>
                        </TouchableOpacity>
                </View>

                {/****** SUBTRACT BUTTON CONTAINER ******/}
                <View Style={styles.subtractButtonContainer}>
                        <TouchableOpacity Style={styles.subButtonDesign}
                        onPress={this.calculateDifference}
                        >
                                <Text style ={styles.buttonText}> - </Text>
                        </TouchableOpacity>
                </View>

                {/****** MULTIPLY BUTTON CONTAINER ******/}
                <View Style={styles.multiplyButtonContainer}>
                        <TouchableOpacity Style={styles.mulButtonDesign}
                        onPress={this.calculateProduct}
                        >
                                <Text style ={styles.buttonText}> * </Text>
                        </TouchableOpacity>
                </View>

                {/****** DIVIDE BUTTON CONTAINER ******/}
                <View Style={styles.divideButtonContainer}>
                        <TouchableOpacity Style={styles.divButtonDesign}
                        onPress={this.calculateQuotient}
                        >
                            <Text style ={styles.buttonText}> ÷ </Text>
                        </TouchableOpacity>
                </View>

这就是问题所在!每当我按下-,*或/按钮时,它不会显示正确的公式,它总是只显示总和。有没有办法在代码中的某个地方执行IF语句,如果按钮被按下,它会在代码的文本部分中放入{this.state.difference}?任何帮助我们都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2018-12-18 15:21:31

经过一段时间的研究,我已经找到了答案,似乎这完全是我的错。我将之前的代码更改为以下代码

代码语言:javascript
复制
calculateQuotient = () => {
    const { firstInput, secondInput, result } = this.state;

    this.setState({
        result: Number(firstInput) / Number(secondInput),

    });
}

文本结果如下

代码语言:javascript
复制
{this.state.result}

它现在存储我按下的按钮的值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53827295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档