No puedo mostrar el contenido de mi archivo json en mi tabla. Obtengo los encabezados pero nada en las celdas.
Aquí está mi código:
import Table from './Table' import Menu from "./menus.json" export default function Display() { const [menu, setMenu] = useState([Menu]); const data = useMemo(() => [ { Header: 'Id', accessor: menu.id, }, { Header: 'Title', accessor: menu.title, }, { Header: 'Invited', accessor: menu.invited.name, }, { Header: 'Price', accessor: menu.price, }, ], []) return ( <Table data={menu} columns={normalizeData(data.result)}> ) }Justo antes de la devolución probé un Object.keys(data).map((key) => ({id: key,})); pero no funciona
Gracias por tu ayuda !
Los datos JSON son un objeto:
{ "menus": [ { "id": "Menu1", "title": "Creamy pea soup topped with melted cheese and sourdough croutons.", "price": 4, "invited": [ { "name": "Jose Luis", "location": "LA" }, { "name": "Smith", "location": "New York" }, ], }, ... ] }...
import JsonData from "./menus.json"; ... const { menus } = JsonData; La propiedad accessor no es correcta.
accessor: String | Function(originalRow, rowIndex) => anyfirstName , entonces su valor se leerá desde row['firstName'] . También puede especificar valores profundamente anidados con elementos de acceso como info.hobbies o incluso address[0].streetrow => row.firstName , entonces su valor se determinaría pasando la fila a esta función y usando el valor resultante.accessor si realmente sabe lo que está haciendo.Usa accesorios punzantes
const data = useMemo( () => [ { Header: "Id", accessor: "id" }, { Header: "Title", accessor: "title" }, { Header: "Invited", accessor: "invited[0].name" // because invited is an array }, { Header: "Price", accessor: "price" } ], [] );O usar una función
const data = useMemo( () => [ { Header: "Id", accessor: row => row.id }, { Header: "Title", accessor: row => row.title }, { Header: "Invited", accessor: row => row.invited[0].name }, { Header: "Price", accessor: row => row.price } ], [] );import { menus } from "./menus.json";¿Tal vez intentas hacer esto?
Creo que debería ser Menu.menus o puedes desestructurarlo para:
const {menus} = Menu