按照我发送的摘录和我收到的其他参数进行摘录。但它为空
Usuario usuario = Usuario();
usuario.email = email;
usuario.senha = senha;
//cadastrar ou logar
if( _cadastrar ){
print(usuario);
Navigator.of(context).pushNamed('/termos-aceite', arguments: usuario.email);
}else{
//Logar
_logarUsuario(usuario);
}
//第二个屏幕 小部件build(BuildContext context){
setState(() {
args = ModalRoute.of(context).settings.arguments;
});
print('args');
print(args); //value is null
答案 0 :(得分:0)
有一个更好的通用方法可以做到这一点,我建议您这样做。
因此,我们可以通过使用Constructor方法来执行此操作,该方法接受一些带有值的变量,在您的情况下,该页面即页面/termos-aceite
。现在,将此Termos
的页面名称设为/termos-aceite
。让我们看看它是如何工作的。
class Termos extends StatelessWidget {
// Declare a field that holds the Todo.
final dynamic email;
// In the constructor, require a Todo.
DetailScreen({Key key, @required this.email}) : super(key: key);
//To use that, you can simply do
print(args);
setState(() {
args = this.email;
});
}
为了将其传递到页面,在本例中传递到Termos
,我们仅使用您的代码进行
Usuario usuario = Usuario();
usuario.email = email;
usuario.senha = senha;
//cadastrar ou logar
if( _cadastrar ){
print(usuario);
// Read about MaterialPageRoute() here
// https://api.flutter.dev/flutter/material/MaterialPageRoute-class.html
Navigator.push(context, MaterialPageRoute(
builder: (context) => Termos(email: email)
));
}else{
//Logar
_logarUsuario(usuario);
}
希望您能得到想要的。另外,请继续搜索有关颤振的这些信息。这很酷,您会在文档本身中找到很棒的东西。无论如何,我会为您列出一些链接,希望这对您是一种学习的经验。继续学习
答案 1 :(得分:0)
您需要发送地图而非物业
setState(() {
args = ModalRoute.of(context).settings.arguments as Map<String, Object>;
});
print('args');
print(args["email"]); //value is email's value
当您尝试获取值时,像这样将参数强制转换为String Object Map,并使用属性键获取数据
func _physics_process(delta):
if is_dead == false:
# all the gravity code is in here.