mahdi
5 سال پیش توسط mahdi مطرح شد
0 پاسخ

پردازش متن در react native با استفاده از onTextLayout

سلام
نیاز به یک الگوریتم دارم که برام محاسبه کنه در هر صفحه از گوشی چه مقدار متن قرار می گیرد. به عنوان مثال فرض کنید یک متن دارم که پنج هزار کاراکتر است، قصد من این است که ببینم در یک صفحه حداکثر چند کاراکتر قرار خواهد گرفت. (البته با احتساب استایل و ...).
یک متد در کامپوننت Text موجود است که عملکردش به شکل زیر می باشد:

onTextLayout={({ nativeEvent: { lines } }) => console.log(lines)}

همانطور که در بالا می بینید خروجی lines سطر به سطر تمام خروجی متن را نمایش می دهد. که با دریافت baseline هر سطر می توان فهمید چه سطری آخرین سطر پنجره جاری است.
ولی مساله این است که این عملیات باید در کامپوننت Text و درون Render صورت پذیرد.
راه کاری وجود دارد که این عملیات خارج از متد render صورت پذیرد؟
من یک مشکلی که دارم این است که وقتی خروجی lines را دریافت می کنم و می خواهم این خروجی را در state قرار دهم و پردازش کنم امکان این کار بدلیل قرار گرفتن در return وجود ندارد و در return نمی توان setState انجام داد.

کسی می تونه راهنمایی کنه؟


ثبت پرسش جدید

به همدیگه کمک کنیم

به mahdi کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام