所以基本上我使用showModalBottomSheet
小部件来显示一个全屏容器,该容器有一个GestureDetector
运行此 onTap 的容器:
onTap: () {
final String testText = "Sup";
Navigator.of(context).pop(testText);
}
Run Code Online (Sandbox Code Playgroud)
await
当我调用结果时,这显然会返回文本showModalBottomSheet
,但是,我还想进行设置enableDrag: true
,以便我们可以将模式滑开。
我的问题是:
当滑动关闭时,如何传递参数/结果?使用函数,我可以简单地做到这一点Navigator.of(context).pop(...)
,但是当我们滑动时,没有函数,因此当我们滑动关闭时我无法找到传递参数的方法。
谢谢你!
所以基本上我有一个 django 方法,我将其传递到序列化器中,但它返回错误User 类型的对象不是 JSON 可序列化这是我的文件:
模型.py:
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
first_name = models.CharField(max_length=50, blank=True)
last_name = models.CharField(max_length=50, blank=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
friends = models.ManyToManyField(User, blank=True, related_name='friends')
def friends_list(self):
return self.friends.all()
def number_of_friends(self):
return self.friends.all().count()
Run Code Online (Sandbox Code Playgroud)
序列化器.py:
from rest_framework import serializers
from .models import Profile
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = [
'id',
'first_name',
'last_name',
'user',
'friends',
'number_of_friends',
'friends_list'
]
Run Code Online (Sandbox Code Playgroud)
该问题与“friends_list”方法有关,因为“number_of_friends”方法按预期完美运行。整个模型字段都有效,只是一种方法不起作用。我该如何解决这个问题?
非常简单和“菜鸟”的问题,但有什么作用!在飞镖中做什么?
这是一个例子:
File? _selectedFile;
Widget joe() {
if (_selectedFile != null) {
return Image.file(
_selectedFile!, // can't do _selectedFile?
width: 250,
height: 250,
fit: BoxFit.cover,
);
}
return Text("mama");
}
Run Code Online (Sandbox Code Playgroud)
我知道?
inFile? _selectedFile
意味着 _selectedFile 允许为空。但是当我_selectedFile?
在 Widget 函数中执行此操作时,它会抛出错误,但当我执行此操作时_selectedFile!
,它会起作用。为什么会这样?
所以基本上我有一个 django 模型,它有一个 ManyToManyField 的朋友和两个在其上运行的方法。这是我的文件:
模型.py:
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
first_name = models.CharField(max_length=50, blank=True)
last_name = models.CharField(max_length=50, blank=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
friends = models.ManyToManyField(User, blank=True, related_name='friends')
def friends_list(self):
return self.friends.all()
def number_of_friends(self):
return self.friends.all().count()
Run Code Online (Sandbox Code Playgroud)
序列化器.py:
from rest_framework import serializers
from .models import Profile
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = '__all__'
Run Code Online (Sandbox Code Playgroud)
视图.py:
from rest_framework import viewsets, permissions
from .models import Profile
from .serializers import ProfileSerializer
class ProfileViewSet(viewsets.ModelViewSet):
queryset = Profile.objects.all()
permission_classes …
Run Code Online (Sandbox Code Playgroud) 所以基本上我是使用 flutter 中的 http 包从 api 获取数据。response.body 是一个如下所示的数组:
[
{
"id":1,
"full_name":"Cristiano Ronaldo",
"avatar":"http://localhost:8000/media/avatars/Ronaldo.jpeg",
"created":"2021-06-30T02:25:56.332816Z"
},
{
"id":2,
"full_name":"Paul Pogba",
"avatar":"http://localhost:8000/media/avatars/Pogba.jpeg",
"created":"2021-06-30T02:49:17.649970Z"
},
{
"id":3,
"full_name":"Paulo Dybala",
"avatar":"http://localhost:8000/media/avatars/Dybala.jpeg",
"created":"2021-06-30T02:52:33.338296Z"
},
{
"id":4,
"full_name":"Leonel Messi",
"avatar":"http://localhost:8000/media/avatars/Messi.jpeg",
"created":"2021-06-30T02:53:39.539556Z"
},
{
"id":5,
"full_name":"Kylian Mbappe",
"avatar":"http://localhost:8000/media/avatars/Mbappe.jpeg",
"created":"2021-06-30T02:57:29.891686Z"
}
]
Run Code Online (Sandbox Code Playgroud)
我的问题是我想基本上将其格式化为“dart”方式。像这样的事情:
List players = response.body;
Run Code Online (Sandbox Code Playgroud)
我收到的错误是这样的:
A value of type 'String' can't be assigned to a variable of type 'List<dynamic>'.
Try changing the type of the variable, or casting the right-hand type to 'List<dynamic>'. …
Run Code Online (Sandbox Code Playgroud)