如何在 flutter 中使用 getX 保存 var 的状态?
How to save the state of a var using getX in flutter?
截图:
Text Recognition Page
从图像中检测到的文本保存在“var resultTxt”中,如何保存ML模型检测到的所有行的状态并在另一个页面上使用?
文字识别码:
doTextRecog() async {
resultTxt = '';
final FirebaseVisionImage visionImage =
FirebaseVisionImage.fromFile(_selectedFile);
final VisionText visionText =
await textRecognizer.processImage(visionImage);
for (TextBlock block in visionText.blocks) {
for (TextLine line in block.lines) {
resultTxt += line.text + '\n';
}
}
setState(() {
resultTxt;
print(resultTxt);
});
// textRecognizer.close();
}
我已经在为我的图像路径使用 getX 控制器,但我不确定如何保存包含多行文本的 var 并在另一个页面上使用它。
控制器代码:
class PollImageController extends GetxController {
RxString imageDisplay = ''.obs;
@override
void onInit() {
super.onInit();
}
void setImage(String image) {
imageDisplay.value = image;
}
@override
void onClose() {
super.onClose();
}
}
您可以使用 GetxService
在您的应用中共享数据。
class SharedData extends GetxService {
static SharedData get to => Get.find();
final sharedText = ''.obs;
@override
void onInit() {
super.onInit();
}
@override
void onClose() {
super.onClose();
}
}
doTextRecog() async {
resultTxt = '';
final FirebaseVisionImage visionImage =
FirebaseVisionImage.fromFile(_selectedFile);
final VisionText visionText =
await textRecognizer.processImage(visionImage);
for (TextBlock block in visionText.blocks) {
for (TextLine line in block.lines) {
resultTxt += line.text + '\n';
}
}
// assign value
SharedData.to.sharedText.value = resultTxt;
}
您也可以在专用 GetxController
class.
中处理所有文本识别功能
然后您可以调用 doTextRecog()
并从任何地方访问更新后的 RxString resultTxt
值。
class TextRecognitionController extends GetxController {
RxString resultTxt = ''.obs;
doTextRecog() async {
final FirebaseVisionImage visionImage =
FirebaseVisionImage.fromFile(_selectedFile);
final VisionText visionText =
await textRecognizer.processImage(visionImage);
for (TextBlock block in visionText.blocks) {
for (TextLine line in block.lines) {
resultTxt.value += line.text + '\n';
}
}
print(resultTxt.value);
// textRecognizer.close();
}
}
截图: Text Recognition Page
从图像中检测到的文本保存在“var resultTxt”中,如何保存ML模型检测到的所有行的状态并在另一个页面上使用?
文字识别码:
doTextRecog() async {
resultTxt = '';
final FirebaseVisionImage visionImage =
FirebaseVisionImage.fromFile(_selectedFile);
final VisionText visionText =
await textRecognizer.processImage(visionImage);
for (TextBlock block in visionText.blocks) {
for (TextLine line in block.lines) {
resultTxt += line.text + '\n';
}
}
setState(() {
resultTxt;
print(resultTxt);
});
// textRecognizer.close();
}
我已经在为我的图像路径使用 getX 控制器,但我不确定如何保存包含多行文本的 var 并在另一个页面上使用它。 控制器代码:
class PollImageController extends GetxController {
RxString imageDisplay = ''.obs;
@override
void onInit() {
super.onInit();
}
void setImage(String image) {
imageDisplay.value = image;
}
@override
void onClose() {
super.onClose();
}
}
您可以使用 GetxService
在您的应用中共享数据。
class SharedData extends GetxService {
static SharedData get to => Get.find();
final sharedText = ''.obs;
@override
void onInit() {
super.onInit();
}
@override
void onClose() {
super.onClose();
}
}
doTextRecog() async {
resultTxt = '';
final FirebaseVisionImage visionImage =
FirebaseVisionImage.fromFile(_selectedFile);
final VisionText visionText =
await textRecognizer.processImage(visionImage);
for (TextBlock block in visionText.blocks) {
for (TextLine line in block.lines) {
resultTxt += line.text + '\n';
}
}
// assign value
SharedData.to.sharedText.value = resultTxt;
}
您也可以在专用 GetxController
class.
然后您可以调用 doTextRecog()
并从任何地方访问更新后的 RxString resultTxt
值。
class TextRecognitionController extends GetxController {
RxString resultTxt = ''.obs;
doTextRecog() async {
final FirebaseVisionImage visionImage =
FirebaseVisionImage.fromFile(_selectedFile);
final VisionText visionText =
await textRecognizer.processImage(visionImage);
for (TextBlock block in visionText.blocks) {
for (TextLine line in block.lines) {
resultTxt.value += line.text + '\n';
}
}
print(resultTxt.value);
// textRecognizer.close();
}
}