首页 > 解决方案 > React Naitve i18n ,如何翻译 useState() 的内容?

问题描述

我遇到了一个问题,我的想法是,当点击一个按钮时,文本从“你好,点击我”变为“谢谢”,我需要将它们翻译成另一种语言,比如中文..

但是,它不能工作......任何人都可以帮助pleaseeee!非常感谢 !!

import React from 'react';
import { StyleSheet, View,Text, Button } from 'react-native';
import i18n from './../translations/i18n';

function TryBtn(props) {
    const[text,setText] =useState({i18n.t('user_detail.click_me')});
    return (
        <View style={styles.conainer}>
         <Text>{text}</Text>   
         <Button title="click" onPress={()=>setText("Thank you ")}/>
        </View>
    );
}


const styles = StyleSheet.create({
  container : {
      flex : 1,
      justifyContent : 'center',
      alignItems : 'center',
      
  }  
})
export default TryBtn;

标签: react-native

解决方案


因此,要在此处实现翻译,您可以按照与初始状态相同的方式进行。在翻译文件中为“谢谢”文本创建键值对,然后在设置状态之前翻译数据,如下所示

import React from 'react';
import { StyleSheet, View,Text, Button } from 'react-native';
import i18n from './../translations/i18n';

function TryBtn(props) {
    const[text,setText] =useState(i18n.t('user_detail.click_me'));
    return (
        <View style={styles.conainer}>
         <Text>{text}</Text>   
         <Button title="click" onPress={()=>setText(i18n.t("user_detail.thank_you"))}/>
        </View>
    );
}

推荐阅读