عمر سالم2 نشر 22 مارس 2021 أرسل تقرير مشاركة نشر 22 مارس 2021 import React from 'react'; import { Text, View } from 'react-native'; const useTypewriter = ({ text, time }) => { const [typewriter, setTypewriter] = React.useState(''); const [index, setIndex] = React.useState(0); React.useEffect(() => { const interval = setInterval(() => { if (index == text.length) { clearInterval(interval); } setTypewriter(typewriter + text[index]); setIndex(index + 1); }, time); // قم بالمسح في حالة قام المكون بالخروج في وقت باكر return () => clearInterval(interval); }, [typewriter, index]); return typewriter; }; function App() { const typewriter = useTypewriter({ text: 'Welcome!', time: 200 }); return ( <View style={{ padding: '20px' }}> <Text style={{ fontSize: '22px' }}>{typewriter}</Text> </View> ); } أحاول إنشاء كاتبه لتكتب احرف الكلمة حرف بحرف، ولكنها لا تتوقف.. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Mohammed Saber6 نشر 22 مارس 2021 أرسل تقرير مشاركة نشر 22 مارس 2021 الخطأ لديك فقط هو أنك لم تكتب كلمة return هنا if (index == text.length) { return clearInterval(interval); // حيث تقول عند تحقق الشرط أريد أن أقوم بإنها التحديث ولا يتم تنفيذ شيئ بعد هذا السطر } لكن بدون return ستنتهي بالفعل الحلقة وسيتم تنفيذ الآتي setTypewriter(typewriter + text[index]); setIndex(index + 1); مما سيؤدي إلى تنفيذ ال useEffect مرة أخرى. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
عمر سالم2
أحاول إنشاء كاتبه لتكتب احرف الكلمة حرف بحرف، ولكنها لا تتوقف..
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.