我有一个获取请求,并将其作为将来传递给FutureBuilder-
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
image:
<img src="https://alphacardstore.com/wp-content/uploads/2020/01/placeholder.png" class="image">
canvas:
<canvas class="img_canvas">
our browser does not support the HTML5 Canvas, please consider updating or changing your browser for a better experience.
</canvas>
然而,方法gettask()似乎在重复获取事件。我尝试使用https://pub.dev/packages/memoize和https://api.flutter.dev/flutter/package-async_async/AsyncMemoizer-class.html,但我认为它们已被弃用,因为它说AsyncMemoizer未定义(没有可用的导入选项)。
我也尝试过https://github.com/flutter/flutter/issues/11426#issuecomment-414047398,但我想探索一个类似于备忘录的选项。
有什么方法可以只获取一次数据(类似于备忘录)?
答案 0 :(得分:2)
使用methods:{
clickHandler(event, yourUrl){
axios.get(yourUrl)
.then(function (response){
//do what you need with this response
}
}
}
,然后在StatefulWidget
内创建一个Future
变量(如_getTaskAsync
)。
将State
分配给gettask()
中的该将来变量。
然后使用该变量作为initState
的参数(例如FutureBuilder
)
代码:
future: _getTaskAsync
请参阅document
答案 1 :(得分:0)
import 'dart:async';
import 'package:async/async.dart';
对我有用...