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';voidmain()=>runApp(MyApp());classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildContext context){returnMaterialApp(
home:MyHomePage(),);}}classMyHomePageextendsStatelessWidget{@overrideWidgetbuild(BuildContext context){returnMyScaffoldWidget();}}classMyScaffoldWidgetextendsStatelessWidget{@overrideWidgetbuild(BuildContext context){// context này của MyScaffoldWidget, mà MyScaffoldWidget là cha của Scaffold luôn rồireturnScaffold(
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:
ý 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.
Ủ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á
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.
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?
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?
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?
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ả!
Trả lời cho câu hỏi trong bài viết, đây là code khi extract widget
Scaffoldra class riêng làMyScaffoldWidget:Nhìn vào code, bạn cũng thấy widget
MyScaffoldWidgetlà cha củaScaffoldluôn rồi. Và trong các widget cha củaMyScaffoldWidgetgồmMyHomePage,MyAppkhông có ai làScaffoldcả 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:
Xin chúc mừng bạn nào có câu trả lời giống tui là: "KO FIX ĐƯỢC BUG NHÉ"
cảm ơn bạn ^^
Thấy thông báo là nhấp vào ngay. Cảm ơn bạn!
@ngocson0211
Bạn có thể tham khảo thêm tại đây
https://mdbootstrap.com/plugins/jquery/multi-range/
https://viblo.asia/p/20-css-javascript-price-range-slider-examples-XL6lAv1m5ek
-Hiểu về cách có mutil range slide tại đây
https://css-tricks.com/multi-thumb-sliders-particular-two-thumb-case/
ý 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.
Bài viết hay đấy, đã follow nha
thanks a lot
Bài viết thật hay. Mình học đc nhìu thứ từ bài viết. Tks
Mong chờ phần 3. Tks.
Ủ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á
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.
@ToThang dạ, e cảm ơn a
thả tim
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!
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
hay quá, mong bạn chia sẻ cách đọc code Babel với
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?
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?
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?