Flutter 我如何将英语数字转换成另一种语言的数字(我使用的是孟加拉语)? 我把英文数字(如123)作为整数,现在我想用另一种语言形式(如。১২৩).

Flutter 我如何将英语数字转换成另一种语言的数字(我使用的是孟加拉语)? 我把英文数字(如123)作为整数,现在我想用另一种语言形式(如。১২৩).,flutter,dart,Flutter,Dart,我使用了一个函数,它也可以工作。但是,它不会在同一个有状态类中多次工作。 它对第一个文本小部件有效,但对第二个小部件无效 Column( children<Widget>:[ Text( "${convertNumber(123)}" ), Text( "${convertNumber(5630)}" ) ] ) 列( 儿童:[ 正文( “${convertNumber(123)}” ), 正文( “${con

我使用了一个函数,它也可以工作。但是,它不会在同一个有状态类中多次工作。 它对第一个文本小部件有效,但对第二个小部件无效

Column(
 children<Widget>:[
  Text(
   "${convertNumber(123)}"
  ),
  Text(
   "${convertNumber(5630)}"
  )
 ]
)
列(
儿童:[
正文(
“${convertNumber(123)}”
),
正文(
“${convertNumber(5630)}”
)
]
)
字符串编号(int-eng){
孟加拉语字符串=“”;
对于(int i=0;i
当我将其用于同一有状态类中的其他数字时,它不起作用。错误是:

在生成过程中调用setState()或markNeedsBuild() 无法将此LowerHalf小部件标记为需要构建,因为框架已在构建小部件的过程中。只有当小部件的一个祖先当前正在构建时,才可以将其标记为需要在构建阶段构建。允许此异常,因为框架在子部件之前构建父部件,这意味着将始终生成脏子体。否则,框架可能不会在此生成阶段访问此小部件。调用setState()或markNeedsBuild()的小部件是:LowerHalf

不要在转换函数内调用setState,只需使用函数获取值即可


小部件在调用setState函数后重建。在您的情况下,build调用setState再次触发build。

我现在编辑了这个问题
  String convertNumber(int eng){
    String bengali = '';
    for(int i = 0; i < eng.toString().length; i ++){
      setState(() {
        switch(eng.toString()[i]){
          case '1':
            bengali = bengali + '১';
            break;
          case '2':
            bengali = bengali + '২';
            break;
          case '3':
            bengali = bengali + '৩';
            break;
          case '4':
            bengali = bengali + '৪';
            break;
          case '5':
            bengali = bengali + '৫';
            break;
          case '6':
            bengali = bengali + '৬';
            break;
          case '7':
            bengali = bengali + '৭';
            break;
          case '8':
            bengali = bengali + '৮';
            break;
          case '9':
            bengali = bengali + '৯';
            break;
          default:
            bengali = bengali + '0';
        }
      });
    }
    return bengali;
  }