Home > Software design >  The body might complete normally, causing 'null' to be returned, but the return type, 
The body might complete normally, causing 'null' to be returned, but the return type, 

Time:04-29

I'm new in flutter i tried to build a webview that have a token I use statefull widget buti have faced this error The body might complete normally, causing 'null' to be returned, but the return type, 'State', is a potentially non-nullable type. the code:

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_form_bloc/flutter_form_bloc.dart';
import 'package:maze/authentication/bloc/authentication_bloc.dart';
import 'package:maze/core/drawer.dart';
import 'package:webview_flutter/webview_flutter.dart';

import '../../authentication/bloc/authentication_state.dart';
import '../../core/secure_store.dart';

class ProfileView extends StatefulWidget {
 @override
 State<StatefulWidget> createState() {
 ProfileViewState createState() =>ProfileViewState();

 }

}
class ProfileViewState extends State<ProfileView> {
 build(BuildContext context) async {
var state = BlocProvider
    .of<AuthenticationBloc>(context)
    .state;
var token = await SecureStore().credentials;

final Completer<WebViewController> _controller =
Completer<WebViewController>();

return Scaffold(
  appBar: AppBar(
    title: const Text('Profile'),
    actions: [
      Padding(
        padding: const EdgeInsets.all(8.0),
        child: Align(
          child: Text("name",
              style: new TextStyle(fontWeight: FontWeight.bold)),
          alignment: Alignment.bottomCenter,
        ),
      ),
    ],
  ),
  drawer: const CustomDrawer(),
  body: BlocBuilder<AuthenticationBloc, AuthenticationState>(
    builder: (context, state) {
      return Center(
          child: WebView(
            javascriptMode: JavascriptMode.unrestricted,

            onWebViewCreated: (WebViewController webViewController) {
              webViewController.loadUrl(
                  "http:exemple...",
                  headers: {"Authorization": "Bearer ${token}"});
              _controller.complete(webViewController);
            },
          )
      );
    },
  ),
);

}

}

CodePudding user response:

Update your profile view class like the below code:

    class ProfileView extends StatefulWidget {
     @override
     State<ProfileView> createState() =>ProfileViewState();

    }

Your have by mistake repeated the createState() line two times.

CodePudding user response:

Change your createState method from this:

class ProfileView extends StatefulWidget {
 @override
 State<StatefulWidget> createState() {
 ProfileViewState createState() =>ProfileViewState();

 }

}

To this:

class ProfileView extends StatefulWidget {
 @override
 State<ProfileView> createState() => ProfileViewState();
}
  • Related