#javascript #json #reactjs #button
#javascript #json #reactjs #кнопка
Вопрос:
Я работаю над приложением для магазина футболок. В котором есть административные элементы управления всеми категориями продуктов и всеми продуктами. Я создал компонент ManageProducts, который обрабатывает обновление и удаление продуктов администратором. Когда я визуализирую его без какой-либо функции, он работает правильно и отображает все кнопки. Но когда я добавляю в него функцию сопоставления, она не отображает кнопки и сведения о продуктах. Также в консоли нет никаких ошибок..
Когда я console.log (typeof products), он показывает объект. в этом объекте ничего нет
вот код
import React, { useState, useEffect } from "react";
import { Link } from "react-router-dom";
import { isAutheticated } from "../auth/helper";
import Base from "../core/Base";
import { deleteProduct, getProducts } from "./helper/adminapicall";
const ManageProducts = () => {
const [products, setProducts] = useState({});
const { user, token } = isAutheticated;
const preload = () => {
getProducts().then((data) => {
if (data.error) {
console.log(data.error);
} else {
setProducts(data.products);
}
});
};
useEffect(() => {
preload();
}, []);
const deleteThisProduct = (productId) => {
deleteProduct(productId, user._id, token).then((data) => {
if (data.error) {
console.log(data.error);
} else {
preload();
}
});
};
return (
<Base title="Welcome admin" description="Manage products here">
<h2 className="mb-4">All products:</h2>
<Link className="btn btn-info" to={`/admin/dashboard`}>
<span className="">Admin Home</span>
</Link>
<div className="row">
<div className="col-12">
<h2 className="text-center text-white my-3">Total 3 products</h2>
**{products amp;amp; products.length > 0 ? (
products amp;amp;
products.map((product, index) => {
console.log(product);**
return (
<div key={index} className="row text-center mb-2 ">
<div className="col-4">
<h3 className="text-white text-left">{product.name}</h3>
</div>
<div className="col-4">
<Link
className="btn btn-success"
to={`/admin/product/update/${product._id}`}
>
<span className="">Update</span>
</Link>
</div>
<div className="col-4">
<button
onClick={() => {
deleteThisProduct(product._id);
}}
className="btn btn-danger"
>
Delete
</button>
</div>
</div>
);
})
) : (
<h1>No products found</h1>
)}
</div>
</div>
</Base>
);
};
export default ManageProducts;
Часть кода, в которую я вставляю ** это код, когда я пишу, что кнопки не отображаются
Комментарии:
1. Можете ли вы создать jsfiddle?
2. Я не могу этого сделать, вместо этого я вставил скриншот
3. jsfiddle.net/boilerplate/react-jsx добавьте свой код, сохраните его и поделитесь ссылкой здесь. Так будет проще проверить код.
4. Вот ссылка на совместное использование кода codeshare.io/5eEzeK