مهدی
11 ماه پیش توسط مهدی مطرح شد
0 پاسخ

سوییچ شدن بین صفحه react native

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

من یه صفحه دارم که یه سری اطلاعات رو پست و ادیت میکنه
الان میخوام از طریق useLocalSearchParams و useEffect وقتی تو صفحه ادیت قرار گرفت باتن ادیت فعال شه

از طریق این لینک به صفحه ادیت میرم که هم ادیت رو از این طریق انجام میدم و هم یه معلم جدید رو اضافه میکنم

<Link href={"/teacher/createTeacher"}>Create</Link>
<Link href={`teacher/${item._id}`}>Edit: {item.name}</Link>

وقتی تو صفحه ادیت هستم با params.teacher ایدی معلم رو میگیرم و ادیتش میکنم

export default function Teacher() {
  const params = useLocalSearchParams();
  const [name, setName] = useState("");
  const [biography, setBiography] = useState("");
  const [teacher, setTeacher] = useState([]);
  const [onEdit, setOnEdit] = useState(false);

  const createTeacher = async () => {
    try {
      const response = await fetch(`${API}/teacher`, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          name,
          biography,
        }),
      });
      const data = await response.json();
      setTeacher(data.teacher);
      setOnEdit(false);
    } catch (error) {
      console.log("EROR");
    }
  };

  const editTeacher = async () => {
    try {
      const response = await fetch(`${API}/teacher/${params.teacher}`, {
        method: "PUT",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          name,
          biography,
        }),
      });
      const data = await response.json();

      setTeacher(data.teacher);
      setOnEdit(true);
    } catch (error) {
      console.log("EROR");
    }
  };

  return (
    <View>
      <View>
        <TextInput value={teacher} onChangeText={setName} />
      </View>
      <View>
        <TextInput value={teacher} onChangeText={setBiography} />
      </View>
      ///// button
      <TouchableOpacity onPress={createTeacher}>
        <Text>Create</Text>
      </TouchableOpacity>
      <TouchableOpacity onPress={editTeacher}>
        <Text>Edit</Text>
      </TouchableOpacity>
    </View>
  );
}