React, компонент
Есть такой код в "первом" компоненте
const [deleted,setDeleted]=useState(false)
const deleteHandler=()=>{
const conf = window.confirm(`Вы уверены что ходите удалить "установку"?`);
if(conf){
deleteDoc(doc(db,"todos",props.todoId)).then(() => {
console.log("Document successfully deleted!");
setDeleted(true)
}).catch((error) => {
console.error("Error removing document: ", error);
});
}
}
мне во "втором" компоненте нужно также иметь возможность удалить данную запить. Как мне правильнее сделать? Вынести функцию в Redux, дублировать эту функцию во "втором" компоненте или другой вариант. Спасибо. |
Какие проблемы просто вынести функцию и импортировать куда надо?
export async function deleteTodo(todoId) {
const conf = window.confirm(`Вы уверены что ходите удалить "установку"?`);
if(conf){
return deleteDoc(doc(db,"todos", todoId)).then(() => {
console.log("Document successfully deleted!");
return true;
}, (error) => {
console.error("Error removing document: ", error);
return false;
});
}
return false;
}
Если нужно добавть state - обычный кастомный хук вам в помощь:
function useDeleteTodo() {
const [deleted, setDeleted] = useState(false);
const deleteHandler = useCallback((todoId) => {
deleteTodo(todoId).then(setDeleted);
}, []);
return [deleted, deleteHandler];
}
|
Проблемы в том, что "плаваю" и хотелось бы знать как правильно делать :)
Все работает, большое спасибо |
Цитата:
Не дублировать код - уже шаг к правильному. ;) |
| Часовой пояс GMT +3, время: 23:10. |