===
[*] Зачем использовать пользовательские крючки в React js?
[*] /> < /li>
Показать только данные поля заголовка только < /p>
< /li>
Управление загрузкой, ошибкой, реализация с использованием блока Try Catch < /p>
< /li>
< /ol>
Руководство по подчинение: < /p>
Directory Mension. Вы можете проверить свой код на своем собственном компьютере, а затем скопировать и вставить здесь. В любом случае, мой ответ был следующим: < /p>
=== < /p>
#1: чтобы инкапсулировать многократно используемую логику, сделайте компоненты меньше и более читаемыми, выдвигая ту же логику, которая может понадобиться в нескольких местах, и сделать это в «Реактировании». Это соглашение, чтобы начать пользовательский крючок с «Использования», для Ex: useapidata (). < /p>
#2, #3, & #4: < /p>
// file: src/hooks/useNewestPosts.jsx (for #2 & #4)
import { useState, useEffect } from "react";
import axios from "axios";
function useNewestPosts() {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
const fetchData = async () => {
try {
const response = await axios.get(
"//inertia-pos.manirul.xyz/api/post-newest"
);
if (response.status === 200 && response.data.status === "Success") {
setData(response.data.data);
} else {
console.log(response);
throw new Error("Something went wrong");
}
} catch (err) {
setError(err);
} finally {
setLoading(false);
}
};
fetchData();
}, []);
return { data, loading, error };
}
export default useNewestPosts;
// file: src/components/PostList.jsx (for #3)
import useNewestPosts from "../hooks/useNewestPosts";
function PostList() {
const { data, loading, error } = useNewestPosts();
if (loading) return
Loading...
;
if (error) return
Error: {error.message}
;
return loading ? (
Loading...
) : error ? (
Error: {error}
) : (
- {data?.map((post, index) => (
{post.title}
))}
}
export default PostList;
< /code>
=== < /p>
Согласно оценивающему учителю, ответ неверно неправильно, потому что он пропускает часть «повторности» (URL жестко кодируется, а не передается как аргумент). < /p>
Так мой вопрос, он должен быть «повторным», чтобы соответствовать критическим критериям? Я сделал немного поиска, и кажется, что в то время как повторно используется основная и полезная особенность пользовательских крючков (как мы заявили в самом начале ответа #1), он не обязательно должен быть «повторный» для каждого случая. Кроме того, вопрос, который, как утверждается, просто внедрил пользовательский крючок, чтобы назвать конкретный API, и кажется, что ответ соответствует критериям. «Правильный способ, я думаю. Меня не беспокоит отметки, приведенные здесь (было дано 90%, что, конечно, совсем неплохо), а скорее мое стремление здесь к знанию правильной концепции.
Подробнее здесь: https://stackoverflow.com/questions/794 ... ustom-hook
Мобильная версия