restate / v1.0.0

அடிக்கடி கேட்கப்படும் கேள்விகள்

restate-இல் ரெண்டரிங், சேமிப்பு, scope-கள், பிழைகள் குறித்த மிகப் பொதுவான கேள்விகளுக்கான பதில்கள்.

அடிப்படைகள்எனக்கு Provider தேவையா?

இல்லை. ஸ்டோர் என்பது மாட்யூல் நிலை மதிப்பு; அதை import செய்யும் எந்தக் கம்போனென்டும் பயன்படுத்தலாம். ஸ்டேட் ஒரு கம்போனென்ட் இன்ஸ்டன்ஸுக்குச் சொந்தமாக இருக்க வேண்டும் என்றால் useRestateScope பயன்படுத்துங்கள்.

அடிப்படைகள்என் கம்போனென்ட் ஏன் ஒவ்வொரு மாற்றத்திலும் ரெண்டர் ஆகிறது?

selector இல்லாமல் ஹூக்கை அழைத்தால் முழு மதிப்புக்கும் சந்தா செய்யப்படுகிறது. கம்போனென்ட் காட்டுவதை மட்டும் தரும் selector கொடுங்கள்.

அடிப்படைகள்என் selector ஆப்ஜெக்டைத் தருகிறது, ஒவ்வொரு முறையும் ரெண்டர் ஆகிறது.

Object.is-இன்படி புதிய ஆப்ஜெக்ட் ஒருபோதும் முந்தையதுக்குச் சமமல்ல. இரண்டாவது ஆர்க்யுமென்டாக shallow கொடுங்கள், அல்லது புலங்களைத் தனித்தனியாகத் தேர்ந்தெடுங்கள்.

அடிப்படைகள்ஆப்ஜெக்ட் மாறியது, ஆனால் எதுவும் புதுப்பிக்கப்படவில்லை.

set அதே ஆப்ஜெக்டைப் பெற்றதால் restate எந்த மாற்றத்தையும் காணவில்லை. set-இலிருந்து புதிய ஆப்ஜெக்ட் அல்லது அரேயைத் தாருங்கள்.

சேமிப்புசேமித்த தரவுக்கு எங்கே காத்திருக்க வேண்டும்?

ஒருமுறை, கிளையன்ட் நுழைவுப் புள்ளியில்: ஆப்பை ரெண்டர் செய்யும் முன் await restateManager.ready இயக்குங்கள். அதன் பிறகு கம்போனென்ட்கள் சேமித்த மதிப்புகளை நேரடியாகப் படிக்கின்றன. useRestateScope-இல் உள்ள ஸ்டோர்கள் தங்கள் scope.manager.ready-க்குக் காத்திருக்கின்றன.

சேமிப்புதரவு எப்போது சேமிப்பகத்தில் எழுதப்படுகிறது?

நீங்கள் save()-ஐ அழைக்கும்போது, அல்லது autoSave இயக்கத்தில் இருந்தால் மாற்றங்களுக்குப் பிறகு, மட்டுமே. திருத்துதல் நினைவகத்தை மாற்றுகிறது; சேமிக்கப்படாத மாற்றங்கள் உள்ளன என்று status().dirty சொல்கிறது.

சேமிப்புautoSave அல்லது save()?

எப்போதும் சேமிக்கப்பட வேண்டிய அமைப்புகள், வரைவுகளுக்கு autoSave பயன்படுத்துங்கள். பயனர் முடிவு செய்யும்போது — சேமி பொத்தான், படிவச் சமர்ப்பிப்பு போன்றவை — save() பயன்படுத்துங்கள். autoSave இயக்கத்தில் இருந்தாலும் save()-ஐ அழைக்கலாம், உதாரணமாக pagehide-இல்.

சேமிப்புதனிப்பட்ட சாளரத்திலோ SSR-இன்போதோ சேமிப்பு தோல்வியடைகிறது.

சேமிப்பகம் கிடைக்காதபோது ஸ்டோர் நினைவகத்தில் தொடர்ந்து இயங்குகிறது, status().available false ஆகிறது, save() STORAGE_UNAVAILABLE உடன் நிராகரிக்கப்படுகிறது. தொடக்கம் இருந்தும் வெற்றிபெறுகிறது.

பிழைகள்restateManager.ready நிராகரிக்கப்பட்டது. இப்போது என்ன?

ஒரு பதிவைப் படிக்கவோ மாற்றவோ சரிபார்க்கவோ முடியாதபோது அது BULK_OPERATION_FAILED உடன் நிராகரிக்கப்படுகிறது. error.failures ஒவ்வொரு ஸ்டோரையும் அதன் பிழையையும் பட்டியலிடுகிறது. பதிவைச் சரிசெய்யுங்கள் அல்லது அழியுங்கள், அந்த ஸ்டோரின் initialize()-ஐ அழையுங்கள், ready-ஐ மீண்டும் அணுகுங்கள்.

பிழைகள்எனக்கு QUEUE_FULL அல்லது STORAGE_TIMEOUT தெரிகிறது.

நீங்கள் வரிசையில் சேர்க்கும் வேலையை விடச் சேமிப்பகம் மெதுவாக உள்ளது. இறுக்கமான சுழற்சியில் save()-ஐ அழைப்பதைத் தவிருங்கள் — நிலுவையிலுள்ள சேமிப்பு ஏற்கெனவே சமீபத்திய மதிப்பை எடுக்கிறது — அல்லது காத்திருப்புடன் autoSave பயன்படுத்துங்கள். தேவைப்பட்டால் maxPendingOperations, operationTimeoutMs-ஐச் சரிசெய்யுங்கள்.

பிழைகள்அன்மவுன்ட்டுக்குப் பிறகு தாமதமாக வரும் கோரிக்கை ஸ்டோரில் எழுதுகிறது.

அழிக்கப்பட்ட ஸ்டோரில் set(), reset() ஆகியவை, அன்மவுன்ட்டுக்குப் பிறகான React ஸ்டேட் புதுப்பிப்பு போலவே புறக்கணிக்கப்படுகின்றன. சந்தா STORE_DESTROYED-ஐ எறிகிறது; சேமிப்பகக் கட்டளைகள் நிராகரிக்கப்படுகின்றன.

Scope-கள்என் scope ஸ்டோர் புதிய props-ஐப் புறக்கணிக்கிறது.

factory useState-இன் தொடக்கியைப் போல ஒருமுறை இயங்குகிறது. ஒவ்வொரு புதிய ஆவணத்துக்கும் புதிய scope கிடைக்க, ஆவண வாரியான key உடன் கம்போனென்டை ரெண்டர் செய்யுங்கள்.

Scope-கள்hydration பொருத்தமின்மையை எப்படித் தவிர்ப்பது?

சர்வரிலும் கிளையன்டிலும் அதே சர்வர் தரவை props ஆக அனுப்பி, useRestateScope-இல் அதிலிருந்து ஸ்டோரை உருவாக்குங்கள். தொடக்க மதிப்பு சர்வர் ஸ்னாப்ஷாட் ஆகிறது.

Scope-கள்என் scope ஸ்டோர் ஏன் restateManager.ready-இல் இல்லை?

scope-இல் உள்ள சேமிக்கப்பட்ட ஸ்டோர்கள், உரிமையாளர் கம்போனென்ட் கிளையன்டில் commit ஆகும்போது ஏற்றத் தொடங்குகின்றன. அந்தக் கம்போனென்டில் ஏற்றுதல் எல்லைக்குள் scope.manager.ready-க்குக் காத்திருங்கள்.

சேமிப்புReact Native-இல் MMKV_UNAVAILABLE.

react-native-mmkv-ஐயும் அதன் நேட்டிவ் சார்புகளையும் நிறுவி, ஆப்பை மீண்டும் build செய்யுங்கள். Expo-வில் development build பயன்படுத்துங்கள். நினைவக ஸ்டோர்கள் MMKV இல்லாமலும் இயங்கும்.

ஆவணங்களில் தேடு

எல்லா வழிகாட்டிகளின் தலைப்புகள், விளக்கங்கள், உள்ளடக்கத்தில் தேடுங்கள்.