حل مشکل تکرار بی پایان یک اجرا هنگام استفاده از setState در FutureBuilder و ListView.Builder در فلاتر

دوستان سلام. به یکی از چرت ترین مشکلاتی که بهش برخوردم میخوام صحبت کنم.

تو یکی از پروژه ها یه متغیر رو داخل یه FutureBuilder ( داخل ListViewBuilder هم همین مشکل وجود داره) یه مقدار جدید دادم بهش . یه BottomNavigationBar هم داشتم که یه ویجت Text قرار داده بودم وهمون متغیر رو داخلش قرار داده بودم. به شکل زیر:

class BasketBar extends StatefulWidget {
  @override
  _BasketBarState createState() => _BasketBarState();
}

class _BasketBarState extends State<BasketBar> {
  double? finalTotal;
...
@override
  Widget build(BuildContext context) {
    S().init(context);
    return Scaffold(
      appBar: buildAppBar(context),
      body: FutureBuilder<List<Data>>(
          future: getData,
          builder: (context, local) {
            if (local.hasData) {
                  ...
                  myVariable = local.data!.name;
                  ...
      bottomNavigationBar: Text(myVariable.toString()),

اما مقدار داخل bottomNavigationBar برای بار اول بروز نمیشد و null نشون میداد. و باید صفحه رو رفرش میکردم تا مقدار درست رو نشون بده. بنابراین از کد زیر استفاده کردم:

Future.delayed(Duration.zero, () {
                setState(() {
                  myVariable = local.data!.name;

                });
              });

با این کد، متغیر myVariable برای بار اول نشون داده شد اما انگار برنامه میفتاد رو دور تکرار و بی وقفه این setState اجرا میشد. بنابرین یه شرط اضافه کردم به این شکل:

if(myVariable == null)Future.delayed(Duration.zero, () {
                setState(() {
                  myVariable = local.data!.name;
                 });
              });

و مشکل حل شد!

اما قضیه از چه قرار بود؟

وقتی از setState استفاده میکنم ویجت build دوباره ساخته میشه و بنابراین فیچربیلدر هم دوباره ساخته میشه و این شرط :

Future.delayed(Duration.zero, () {
                setState(() {
                  myVariable = local.data!.name;
                 });
              });

دوباره تکرار میشه و مثل یه حلقه ی بی پایان ویجت ساخته میشه .

اما شرطی که اضافه کردیم فقط برای بار اول این کار رو انجام میده و تمام!!!

حل ارورNoSuchMethodError (NoSuchMethodError: The method ‘*’ was called on null در فلاتر

جواب این مشکل در سایت stackoverflowهم جواب داده نشده(تا به این تاریخ) ولی هیچ ارور خاصی نیست.

شما یک کلاس تعریف کردید و همچنین داخلش constructor تعریف کردید اما اونجایی که کلاس رو صدا زدید متدهای ورودی رو صدا نزدید.

منبع:آچارکد AcharCode.ir

حل مشکل

ps1 cannot be loaded because running scripts is disabled on this system در selenium و vscode

تو محیط ترمینال در vscode، این دستور رو تایپ کنید:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

تو سیستم من با این روش حل شد؛ اگه جواب نگرفتید یه سربه لینک زیر بزنید: کلیک کنید

راهنمای لینک بالا:

حل مشکل ModuleNotFoundError: No module named بعد از نصب صحیح کتابخوانه در vs code

تو یکی از امور کدزنی پایتون و ایمپورت کردن دو کتابخانه با مشکل ModuleNotFoundError: No module named مواجه شدم در حالی که کتابخانه را به درستی نصب کرده بودم .. .

البته بعدا متوجه شدم که زیاد هم به درستی نصب نکرده بودم :/

دوستان عزیز وقتی میخواین کتابخانه ای رو نصب کنید به صورت مستقیم ازpip استفاده نکنید. باید به صورت -m pip استفاده کنید.

برای مثال: برای نصب mysql باید از کد :

python -m pip install mysql-connector-python

استفاده کنید.

خب حالا کاریه که شده، چطور درستش کنیم؟

کلیدهای میانبر ctrl + shift + p رو بزنید و بعد سرچ کنید: select interpreter

interpreter رو عوض کنید. اونی که نیازتونه. برای من دوتا گزینه موجوده:

گزینه اول که ‘env’ هم نوشته ، برای virtual environment درفولدر پروژه هستش. پایینی هم که اینتر پریتر عمومی هست.

جهت اطلاعات بیشتر کلیک کنید.

حل مشکل ERROR: Could not find a version that satisfies the requirement در پایتون

کتابخونه PyAutoIt رو نصب میکردم که با ارور زیر مواجه شدم:

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000022EF4A241F0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions')': /simple/pyautoit/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000022EF4A24730>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions')': /simple/pyautoit/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000022EF4A64160>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions')': /simple/pyautoit/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000022EF4A64310>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions')': /simple/pyautoit/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000022EF4A644C0>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions')': /simple/pyautoit/
ERROR: Could not find a version that satisfies the requirement pyautoit (from versions: none)
ERROR: No matching distribution found for pyautoit

احتمال زیاد آی پی ایران رو تحریمه. من با باز کردن یه فیلترشکن مشکلم حل شد.

Reference : AcharCode.ir

اضافه کردن المنت به آرایه انجمنی در PHP

خب دوستان یه آرایه داریم به این صورت:

$info = array($key1 => $value1);

حالا میخواید یه المنت دیگه دقیقا مشابه این ارایه $key2 و $value2 کنید. به روش زیر میتونید به راحتی عضو جدید به این نوع آرایه اضافه کنید:

$info[key2] = $value2 ;

به همین آسونی 🙂

حل ارور Warning: Cannot modify header information – headers already sent by در PHP

خب سلام دوستان.

تو یکی از پروژه ها به ارور زیر برخوردم:

Warning: Cannot modify header information – headers already sent by (output started at /some/file.php:12) in /some/file.php on line 23

این ارور چندتا دلیل داره که مشکل من با روش زیر که بهتون میگم حل شد. شاید واسه شما با راه حل های دیگه که لینکشو میذارم حل شه ولی پیشنهاد میکنم این راه حل رو انجام بدید اگه جواب نداد برید بعدیا.

کدهای php رو تو بالاترین قسمت سایت قرار بدید؛ یعنی بالای :

<!DOCTYPE html>

اگه مشکل حل نشد ، برید لینک زیر و بقیه ی راه حل هارو حل کنید.

https://2ad.ir/WV95SNFv

حل مشکلUnable to locate package در کالی لینوکس

سلام همگی.

به یکی از چرت ترین مشکلات کالی میرسیم. هر نرم افزار یا پکیجی رو که میخواید نصب کنید با ارور Unable to locate package مواجه میشید. اینجا با دوتا خط بتون میگم چیکار کنید.

اگه با این تاپیک مشکلتون حل شد کامنت بذارید تا مام انرژی بگیریم از کامون

1- داخل ترمینال تایپ کنید:

sudo nano /etc/apt/sources.list

2- این دوتا مورد رو کپی کنید:

deb http://http.kali.org/kali kali-rolling main non-free contrib
deb   http://http.kali.org/kali   kali-rolling   main non-free contrib

3- حالا دکمه های ctrl + o رو همزمان فشار بدید. پیغامی مث این File Name to Write: etc…. میبینید. فقط Enter رو فشار بدید. یکم زمان میبره تا مخزن هارو دانلود کنه.

حالا محض اطمینان تایپ کنید: sudo apt-get update

و بعدش : sudo apt-get install checkinstall

کارتمومه! نظر یادتون نره 🙂