404 Not Found! قیمت ها به ۴۰۳ برگشت! به مدت محدود!

بزن بریم!
ثانیه
دقیقه
ساعت
روز
مهدی
1 هفته پیش توسط مهدی مطرح شد
1 پاسخ

جدا کردن دیتا مربوط به صفحه کتاب در ریکت نیتیو

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

یه توضیح کوچیک میدم
من یه فایل jsx دارم که از طریق اون به صفحه کتاب های موجود در دیتابیس وصل میشه [book].jsx
و از یه طرف دیگه صفحاتی مربوط به معلم ها دارم که اطلاعات خاصی درموردشون وجود داره
زمانی که کتاب ها توسط ادمین ساخته میشه آبجکت ایدی معلم هایی که اون کتاب رو تدریس میدن تو دیتابیس مربوط به کتاب ذخیره میشه
اینم کدی که دارم باهاش کار میکنم:

export default function BookPage() {
const params = useLocalSearchParams();
const [book, setBook] = useState([]);
const [teachers, setTeachers] = useState([]);
const [teacher, setTeacher] = useState([]);
const fetchBook = async () => {
try {
const response = await fetch(`${API}/book/${params.id}`);
const data = await response.json();
setBook(data.book);
} catch (error) {
}
};
const fetchTeachers = async () => {
setLoading(true);
try {
const response = await fetch(`${API}/teachers`);
// تو این قسمت از یه روش دیگه هم اومدم تست کنم
// از api که مربوط به ایدی معلم ها بود تست کردم که بازم درست نشد
// const response = await fetch(`${API}/teachers/${book.teacher}`);
// به این شکل درست کار میکرد ولی چون بعضی از کتاب ها چند تا معلم داشتن واسه اون ها جواب نمیداد
const data = await response.json();
setTeachers(data.teachers);
} catch (error) {
setLoading(false);
}
};
useEffect(() => {
fetchBook();
fetchTeachers();
if (book.teacher) {
teachers.forEach((teacher) => {
if (teacher._id === book.teacher) setTeacher(teacher);
});
}
}, []);
return (
<View>
<Text>Book Page</Text>
<Text>{book.title}</Text>
<Text>name2: {teacher.name}</Text>
<Text>ID: {teacher._id}</Text>
</View>
);
}

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

if (book.teacher) {
teachers.forEach((teacher) => {
if (teacher._id === book.teacher) setTeacher(teacher);
});

از یه روش دیگه هم استفاده کردم که باز نتونستم مشکلمو رفع کنم

{teachers.map((teacher, index) => (
<View key={index}>
<Text >
name: {teacher.name}
</Text>
</View>
))}
</View>

ممنون میشم اگه نگاهی بهش بندازین


nodejs
react_native
ثبت پرسش جدید
امیرعلی
@amiralll 1 هفته پیش مطرح شد
0

vchfzxdfzxSDF


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

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