THẢO LUẬN

Bài không biết góp nhặt chắp vá ở đâu, quá nhiều lỗi chính tả!

0

Trả lời cho câu hỏi trong bài viết, đây là code khi extract widget Scaffold ra class riêng là MyScaffoldWidget :

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  
  Widget build(BuildContext context) {
    return MyScaffoldWidget();
  }
}

class MyScaffoldWidget extends StatelessWidget {
  
  Widget build(BuildContext context) { // context này của MyScaffoldWidget, mà MyScaffoldWidget là cha của Scaffold luôn rồi
    return Scaffold(
      body: Center(
        child: FlatButton(
          child: Text('show snackbar'),
          color: Colors.pink,
          onPressed: () {
            final snackBar = SnackBar(content: Text('Lỗi không thể truy cập bài viết này vì thấy hay mà không vote'));
            Scaffold.of(context).showSnackBar(snackBar);
          },
        ),
      ),
    );
  }
}

Nhìn vào code, bạn cũng thấy widget MyScaffoldWidget là cha của Scaffold luôn rồi. Và trong các widget cha của MyScaffoldWidget gồm MyHomePage, MyApp không có ai là Scaffold cả nên tất nhiên cách này sẽ bị bug.

Tương tự sử dụng Builder wrap Scaffold vẫn sẽ bị bug:

class MyHomePage extends StatelessWidget {
  
  Widget build(BuildContext context) {
    return Builder(
      builder: (context) => Scaffold(

Xin chúc mừng bạn nào có câu trả lời giống tui là: "KO FIX ĐƯỢC BUG NHÉ" 😄

+1
thg 9 13, 2020 8:27 SA

Thấy thông báo là nhấp vào ngay. Cảm ơn bạn!

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 9 13, 2020 7:29 SA
0

ý người viết là khi gặp vấn đề gì thì nên tìm cách giải quyết chứ không nên quá dựa dẫm vào thư viện, vì có khi mình chỉ sử dụng 1 chức năng nhỏ của thư viện mình import thôi, ví dụ như về scrolling, modal, xử lý với object, ngày tháng năm, hạn chế thôi chứ nếu cần thì mình vẫn xài.

-1

Bài viết hay đấy, đã follow nha

+1

thanks a lot

+1
thg 9 13, 2020 3:41 SA

Bài viết thật hay. Mình học đc nhìu thứ từ bài viết. Tks

0
thg 9 13, 2020 2:49 SA

Mong chờ phần 3. Tks.

0

Ủa không thích dùng thư viện sẵn thì sao bạn không dùng Javascript thuần mà lại phải dùng thư viện Reactjs? Bạn cũng có thể build một thư viện tương tự như Reactjs khi mà đã nắm rõ Javascript rồi mà? Mâu thuẫn quá 😂

-1
thg 9 12, 2020 4:37 CH

Hi thớt
Thớt tìm hiểu thêm terraform [import , taint , fmt ] và học cách sử dụng depends_on khi creates resource hay destroy nhé 😄
Ngoài ra, để destroy thì cần chú ý các resource phải tự delete object bằng manual như s3 bucket.

0
thg 9 12, 2020 3:16 CH

@ToThang dạ, e cảm ơn a

0
thg 9 12, 2020 1:27 CH

Bài viết thật hay. Dẫn dắt ý tưởng và thực hành từng đoạn một. Tks

Ngóng phần 2!

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 9 12, 2020 1:20 CH

Bạn Nghiêm Tuấn có biết cái Form Html giống như ảnh trên thì nó tên là gì không thế. Thanks

0

hay quá, mong bạn chia sẻ cách đọc code Babel với

0

Cho mình hỏi. Mình có viết 1 app có dùng BottomNavigationView, ViewModel và SwipeRefreshLayout. Khi onCreateView, mình dùng setValue để set data mới vào ViewModel. Khi có sự kiện OnRefresh của SwipeRefreshLayout mình sẽ gọi API để và dùng postValue để set data mới vào ViewModel. Mọi việc vẫn OK, UI vẫn hiển thị theo data mới nhưng khi mình chuyển sang tab khác và trở về thì UI lại hiển thị theo data cũ (data đc set ở onCreateView) Mình đã thử nhiều cách và phát hiện ra là chỉ khi dùng postValue hoặc dùng setValue trong runOnUiThread() thì khi chuyển tab mới bị bug này. -> bạn có thể giải thích lý do và cách fix không?

0

Cho mình hỏi. Mình có viết 1 app có dùng BottomNavigationView, ViewModel và SwipeRefreshLayout. Khi onCreateView, mình dùng setValue để set data mới vào ViewModel. Khi có sự kiện OnRefresh của SwipeRefreshLayout mình sẽ gọi API để và dùng postValue để set data mới vào ViewModel. Mọi việc vẫn OK, UI vẫn hiển thị theo data mới nhưng khi mình chuyển sang tab khác và trở về thì UI lại hiển thị theo data cũ (data đc set ở onCreateView) Mình đã thử nhiều cách và phát hiện ra là chỉ khi dùng postValue hoặc dùng setValue trong runOnUiThread() thì khi chuyển tab mới bị bug này. -> bạn có thể giải thích lý do và cách fix không?

+1
Avatar
đã bình luận cho bài viết
thg 9 12, 2020 11:21 SA

Cho mình hỏi. Mình có viết 1 app có dùng BottomNavigationView, ViewModel và SwipeRefreshLayout. Khi onCreateView, mình dùng setValue để set data mới vào ViewModel. Khi có sự kiện OnRefresh của SwipeRefreshLayout mình sẽ gọi API để và dùng postValue để set data mới vào ViewModel. Mọi việc vẫn OK, UI vẫn hiển thị theo data mới nhưng khi mình chuyển sang tab khác và trở về thì UI lại hiển thị theo data cũ (data đc set ở onCreateView) Mình đã thử nhiều cách và phát hiện ra là chỉ khi dùng postValue hoặc dùng setValue trong runOnUiThread() thì khi chuyển tab mới bị bug này. -> bạn có thể giải thích lý do và cách fix không?

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí