How to Convert RxInt to Int in Dart || Flutter?
6,125
type 'int' is not a subtype of type 'RxInt' of 'function result'
means that the function is returning an integer. Not a RxInt.
When assigning values to Rx Types use value propery. example:
myInteger.value = 100;
When getting the value from Rx Type,
myInteger.value
Author by
Mijanur Rahaman
Updated on December 27, 2022Comments
-
Mijanur Rahaman over 1 year
I am playing around with flutter,
I am facing an error and not getting any proper solution
In my app I have a few observable variables in my GetX controller, When trying apply some format then getting the log here
======== Exception caught by widgets library ======================================================= The following _TypeError was thrown building Obx(dirty, state: _ObxState#76641): type 'int' is not a subtype of type 'RxInt' of 'function result' The relevant error-causing widget was: Obx file:///D:/flutter/mini_rupiya/lib/views/screens/payment.dart:84:17 When the exception was thrown, this was the stack: #0 DepositController.total (package:mini_rupiya/controllers/deposit_controller.dart) #1 _PaymentState.build.<anonymous closure> (package:mini_rupiya/views/screens/payment.dart:84:145) #2 Obx.build (package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart:84:28) #3 _ObxState.notifyChilds (package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart:52:27) #4 _ObxState.build (package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart:68:41) ... ==================================================================================================== Reloaded 7 of 1033 libraries in 2,688ms. ======== Exception caught by rendering library ===================================================== The following assertion was thrown during layout: A RenderFlex overflowed by 99736 pixels on the bottom. The relevant error-causing widget was: Column file:///D:/flutter/mini_rupiya/lib/views/screens/payment.dart:38:20 The overflowing RenderFlex has an orientation of Axis.vertical. The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and black striped pattern. This is usually caused by the contents being too big for the RenderFlex. Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the RenderFlex to fit within the available space instead of being sized to their natural size. This is considered an error condition because it indicates that there is content that cannot be seen. If the content is legitimately bigger than the available space, consider clipping it with a ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex, like a ListView. The specific RenderFlex in question is: RenderFlex#d0b84 relayoutBoundary=up3 OVERFLOWING ... needs compositing ... parentData: offset=Offset(26.0, 26.0) (can use size) ... constraints: BoxConstraints(0.0<=w<=359.4, 0.0<=h<=507.7) ... size: Size(359.4, 507.7) ... direction: vertical ... mainAxisAlignment: center ... mainAxisSize: max ... crossAxisAlignment: center ... verticalDirection: down ◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤ ====================================================================================================
Here is the line from where this error is arrived
Obx(() => Text("You will get : ${NumberFormat.currency(locale: 'HI', name: "INR", symbol: "\u{20B9}").format(_depositController.total.value.round()/100)}"))
I am Using intl package for
NumberFormat
It was working fine before I have turned it into using.obs()
on the controllerIf anyone can describe this, It will be a greate help
-
Mijanur Rahaman about 3 yearsI have assigned the values like this
int entry = multiply(double.tryParse(text)); comm.value = (entry *.02).round(); tax.value = (comm * 0.18).round(); total.value = (entry*.9764).round();
-
Mijanur Rahaman about 3 yearsHere is the declarations
var total = 0.obs; var comm = 0.obs; var tax = 0.obs;
-
Srilal Sachintha about 3 yearscode you commented is fine but its better if you assigned exact data types to your Rx Types. the above error is from a point where a function returning a value to one of your variables. try making the
entry
also a Rx Type. -
Mijanur Rahaman about 3 yearsthese are all the usage of these variables, I have never used this
total
variable in my entire project -
Mijanur Rahaman about 3 yearsfirst declared in a variable with
.obs
then used inObx
mentioned in the question then updating the value using a controller function and here on the first comment I have used these codes to update the value, wheretext
is the String value from TextField -
Mijanur Rahaman about 3 yearsIts working after type casting the variables