gpt4 book ai didi

flutter - 导航 future 方法抖动

转载 作者:行者123 更新时间:2023-12-03 03:32:19 25 4
gpt4 key购买 nike

我正在尝试从将来的方法导航到屏幕。但是我得到一个错误,说未定义的名称上下文。我尝试从Widget构建导航,但是参数是在此方法内创建的,因此我需要它来进行导航。我已经坚持了很长时间。任何帮助将不胜感激。

Future<void> addBookingConversation(Booking booking) async {
Conversation conversation = Conversation();
await conversation.addConversationToFirestore(booking.posting.host); //additional method working fine
String text = "Hi, my name is ${AppConstants.currentUser.firstName}";
await conversation.addMessageToFirestore(text); //additional method working fine
//this is where i should navigate to the conversation page and facing the error here
Navigator.push(
context, //error here context undefined
MaterialPageRoute(builder:
(context) => ConversationPage(conversation: conversation,),
),
);
}
class ConversationPage extends StatefulWidget {

final Conversation conversation;

static final String routeName = '/conversationPageRoute';

ConversationPage({this.conversation, Key key}) : super(key: key);

@override
_ConversationPageState createState() => _ConversationPageState();
}

class _ConversationPageState extends State<ConversationPage> {

Conversation _conversation;
// additional code of wiget build
}

最佳答案

我不知道您的函数位于何处,因此这是一些一般性建议:
如果您无法在方法中访问变量,则有两个选择:将其作为参数从调用方传入。或将结果返回给调用方,以便他们可以自己完成需要变量的部分。
这对您的场景意味着什么:要么需要将context作为方法中的附加参数,要么需要从方法中返回Future<Conversation>并处理调用它的导航。
就我个人而言,我赞成第二种选择,因为您开始对话的业务逻辑和应用程序内导航是两个不同的关注点,不应混用一种方法。

关于flutter - 导航 future 方法抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63223893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com