• 1401/07/21

اشکال مجدد در cheek render meethod :

استاد سلام  همان مشکل قبلی  هستش  ببخشید اشتباها تیکت را بستم . استاد دقیقا 3 تا  فایل شما رو هم  عینا استفاده کردم  بصورت زیر باز هم مشکل حل نشده . شما فرمودید اشکال در export    کردن باشه که در تمام فایل ها هستش می تونید ملاحظه بفرمایید

import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
import HomeScreen from './app/Screens/HomeScreen';

const Stack = createStackNavigator();

const App = () => {
  return (
    <NavigationContainer>
      <Stack.Navigator screenOptions={{headerShown: false}}>
        <Stack.Screen name="Home" component={HomeScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
};

export default App;
import React from 'react';
import {
  Container,
  Header,
  Footer,
  FooterTab,
  Left,
  Right,
  Body,
  Title,
} from 'native-base';

const Layout = ({children, left, right, title, footer}) => {
  return (
    <Container>
      <Header>
        <Left>{left}</Left>
        <Body>
          <Title>{title}</Title>
        </Body>
        <Right>{right}</Right>
      </Header>
      {children}
      <Footer>
        <FooterTab>{footer}</FooterTab>
      </Footer>
    </Container>
  );
};

export default Layout;
import React, {useCallback, useState, useContext} from 'react';
import {Text, FlatList, TouchableOpacity} from 'react-native';
import {Button} from 'native-base';
import {useFocusEffect} from '@react-navigation/native';
import Layout from '../Components/Layout';

const HomeScreen = props => {
  const [notes, setNotes] = useState([]);

  return (
    <Layout
      title="یاداشتهای من"
      footer={
        <Button full onPress={() => props.navigation.navigate('ADD')}>
          <Text>اضافه کردن یاداشت جدید</Text>
        </Button>
      }>
      <FlatList
        data={notes}
        keyExtractor={note => note.id}
        renderItem={note => (
          <TouchableOpacity
            onPress={() =>
              props.navigation.navigate('Update', {id: note.item.id})
            }>
            <Text>My Note</Text>
          </TouchableOpacity>
        )}
      />
    </Layout>
  );
};

export default HomeScreen;
  • 1401/07/27
  • ساعت 21:22

سلام دوست من

در کدت مشکلی دیده نمیشه

چه خطایی دریافت میکردی متن کامل خطا رو قرار بده


  • 1401/07/28
  • ساعت 08:03

با سلام خدمت استاد عزیز

این بار بعد از build شدن پروژه  بدون هیچ توضیحی برنامه قطع  می شود و ارتباط با محیط برنامه نویسی و اجرا در گوشی قطع می شود .جهت  اطلاع کامپوننت های نصب  شده به شرح ذیل است به نظرشما اشکال از نصب وابستگی ها نیست؟چند  هفته هستش که در این قسمت  گیر کرده ام  و نمی دونم چی کار کنم از اینترنت هم چیزی دستگیرم  نشده

مرسی ممنون 

{
  "name": "notepadprj",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "cd android && ./gradlew clean && cd.. && react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "@react-native-async-storage/async-storage": "^1.17.10",
    "@react-native-masked-view/masked-view": "^0.2.8",
    "@react-navigation/native": "^6.0.13",
    "@react-navigation/native-stack": "^6.9.1",
    "@react-navigation/stack": "^6.3.2",
    "native-base": "^3.4.18",
    "react": "18.1.0",
    "react-native": "0.70.2",
    "react-native-gesture-handler": "^2.7.0",
    "react-native-safe-area-context": "^4.4.1",
    "react-native-screens": "^3.18.0",
    "react-native-svg": "^12.4.4"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/runtime": "^7.12.5",
    "@react-native-community/eslint-config": "^2.0.0",
    "babel-jest": "^26.6.3",
    "eslint": "^7.32.0",
    "jest": "^26.6.3",
    "metro-react-native-babel-preset": "0.72.3",
    "react-test-renderer": "18.1.0"
  },
  "jest": {
    "preset": "react-native"
  }
}

 

> Task :app:compileDebugJavaWithJavac

> Task :app:installDebug
Installing APK 'app-debug.apk' on 'SM-G610F - 8.1.0' for :app:debug
Installed on 1 device.
w: Detected multiple Kotlin daemon sessions at build\kotlin\sessions

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.5.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 5m 42s
147 actionable tasks: 142 executed, 5 up-to-date
info Connecting to the development server...
info Starting the app on "5203eb15fa287487"...
Starting: Intent { cmp=com.notepadprj/.MainActivity }
Done in 494.89s.
PS D:\myWorkReact\myProjects\cliproject\notepadproject2\notepadprj> 				

  • 1401/08/01
  • ساعت 15:39

سلامی مجدد دوست من

امکانش بسیار زیاد هست که از اختلالات اینترنت باشه

برای مطمئن شدن کلا node-module رو پاک کن و سعی کنی دوباره نصبش کنی اگر بدون هیچ خطایی نصب شد یعنی همه چیز درست هست.

کار بعدی میتونه پاک کردن مجازی ساز و نصب مجدد باشه اگر از مجازی ساز android studio استفاده میکنی البته

وسعی کن روی گوشی واقعی تست کنی

حتما دستور gradlew clean رو هم انجام بده تا مشکلی بود برطرف بشه

چون خیلی از وابستگی ها برای ری اکت نیتیو از انباره های گوگل و maven نصب میشه که فیلتر هست باید از ابزار ضد تحریم خوب استفاده بشه از جمله vpn pptp یا کریو یا ikev و غیره تا تمامیه کانکشن های سیستم بتونن از تحریم عبور کنن نه تنها اینکه یک افزونه روی مرورگر نصب کنیم و انتظار این رو داشته باشیم چون این مورد تنها برای مرورگر خواهد بود و تنها http , https باز میشه برای خود مرورگر نه کانکشن ها دیگر.


  • 1401/08/03
  • ساعت 13:56

سلام  مجدد  استاد اون کارها   که شما فرمودید رو انجام دادم باز یه پیام دیگه واقعا خسته کننده شده استاد بیشتر کمک ام کنید.این پیام روی پنجره نود میاد. مرسی



 ERROR  TypeError: undefined is not a function, js engine: hermes
 ERROR  Invariant Violation: Failed to call into JavaScript module method AppRegistry.runApplication(). Module has not been registered as callable. Registered callable JavaScript modules (n = 11): Systrace, JSTimers, HeapCapture, SamplingProfiler, RCTLog, RCTDeviceEventEmitter, RCTNativeAppEventEmitter, GlobalPerformanceLogger, JSDevSupportModule, HMRClient, RCTEventEmitter.
        A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes
 ERROR  Invariant Violation: Failed to call into JavaScript module method AppRegistry.runApplication(). Module has not been registered as callable. Registered callable JavaScript modules (n = 11): Systrace, JSTimers, HeapCapture, SamplingProfiler, RCTLog, RCTDeviceEventEmitter, RCTNativeAppEventEmitter, GlobalPerformanceLogger, JSDevSupportModule, HMRClient, RCTEventEmitter.
        A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes

  • 1401/08/04
  • ساعت 22:24

سلام دوست من

یکی از مشکلات میتونه نداشتن دسترسی به props برای Navigation باشه

یکی از کارهایی که میتونی برای مطمئن شده از داشتن مقدار navigation انجام بدی به این صورت هست

     <TouchableOpacity
            onPress={() =>
              props.navigation?.navigate('Update', {id: note.item.id})
            }>
            <Text>My Note</Text>
          </TouchableOpacity>

متاسفانه برخی خطاها اطلاعات زیادی به توسعه دهنده نمیده به همین خاطر از روش TDD استفاده کن یعنی هر تغییری میدی چک کن که همه چیز درست کار میکنه تا بتونی بفهمی که با انجام چه کاری این خطا پیش اومده.

اگر مشکل حل نشده این روش رو تست کن

امروزه خیلی ها در این مورد خطا دریافت میکنن به دلیل نصب نبودن react-native-reanimated

به این صورت به package,json اضافه کن

module.exports = {
      ...
      plugins: [
          ...
          'react-native-reanimated/plugin',//اینو اضافه کن
      ],
  };

اگر درست نشد در این مسیر android/app/build.gradle این خط رو اضافه کن و اگر بود false رو به true تغییر بده

project.ext.react = [
  enableHermes: true  // <-اگر بود از false به true عوض کن
]

بعد در MainApplication.java

  import com.facebook.react.bridge.JSIModulePackage; // <- اضافه کن
  import com.swmansion.reanimated.ReanimatedJSIModulePackage; // <- اضافه کن
  ...
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
  ...

      @Override
      protected String getJSMainModuleName() {
        return "index";
      }

///////////////////////////////////////////////////
      @Override
      protected JSIModulePackage getJSIModulePackage() {      <- این رو هم اضافه کن
        return new ReanimatedJSIModulePackage(); // 
      }
///////////////////////////////////////////////////
    };

بعد حتما clean کن

cd android 
./gradlew clean
cd ../ 

و بعد به این صورت اجرا کن

npx react-native run-android -- --reset-cache   

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

 


  • 1401/08/14
  • ساعت 20:17

سلام استاد 

کار های گفته شده را انجام دادم ولی پروژه یاداشتهای من همچنان خطا دارد. با راهنمایی شما خط به خط کد اضافه کردم متوجه شدم که اگر کد مربوط به <Header> در فایل  layout   رو اضافه می کنم  می کنم خطا دارم همچنین وقتی  کد

 <Left>{left}</Left> را اضافه می کنم باز خطا دارم  با مراجعه به مستندات متوجه شدم ورژن  native-base    من  ورژن 3 می باشد  و شما در کلاس از ورژن 2   استفاده کرده اید بنابراین کد مربوط به layout   همیشه خطا دارد چون در ورژن 3 

باید بجای  <Header> از <Hstack >   , <Vstack >    استفاده کرد.  بنابراین دارم سعی میکنم که این المانها را  یاد بگیریم تا بتونم کد کلاس را  تو ورژن 3 بنویسم یا بازسازی کنم. 

تا اینجا پش رفتم ولی خیلی خسته کننده شده و  توی این جلسات 104  انگار دارم درجا می زنم . یعنی مثل expo  دارم سریع جلو نمی رم 

با تشکر


  • 1401/08/15
  • ساعت 22:05

سلام دوست من

بهترین کار همین هست

هیچ دوره ایی در دنیای جاوااسکریپت نمی تونه همیشه بروزباشه و باید توانایی یادگیری سینتکس نوین هر کتابخانه یا پکیج رو داشته باشی

همیشه در اولین بخش یادگیری یک پکیج یا کتابخونه به مستنداتش مراجعه کن تا ببینی چه ورژنی اومده یا تغییراتی هست یا نه.

چند بار که این کارو انجام بدی و یادبگیری چطور خودت ادامه راه رو بری دیگر به هیچ دوره ایی احتیاج نخواهی داشت همانطور که همیشه در دوره میگم

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

پس سرعت رو در نظر نگیر مهم اینه که هر روز داری پیشرفت میکنی و چیز جدیدی یاد میگیری.

موفق باشی


logo-enamadlogo-samandehi