reactjs - 将对象带到另一个文件时对象嵌套
问题描述
我是新手,正在尝试一些东西,但是遇到了这个问题,当我在另一个文件中调用一个对象时,我继承了这些值等,它就像一个新对象,然后将原始对象放入那个新对象中。它可能被解释为一团糟,但我会用一些例子说明清楚。有人可以向我解释这是如何工作的吗?
这是基础文件。第一条路线是它发生的地方,您会看到我想将项目提供给该文件。 在这里记录项目时的结果是 items { ... } (我想要的)
import React, { Component } from "react";
import "./App.css";
import Home from "./components/Home.jsx";
import AboutUs from "./components/AboutUs.jsx";
import Contact from "./components/Contact.jsx";
import Overview from "./components/Overview.jsx";
import Nav from "./components/Nav.jsx";
import { Switch, Route } from "react-router-dom";
class App extends Component {
constructor() {
super();
this.state = { items: { 1551204339467: "Hi", 1551204339469:
"123Test" } };
}
render() {
const { items } = this.state;
return (
<>
<Nav />
<Switch>
<Route path="/" exact component={Home} />
<Route path="/about" component={AboutUs} />
<Route path="/overview" render={() => <Overview items={items}
/>} />
<Route path="/contact" component={Contact} />
</Switch>
</>
);
}
}
export default App;
这是它给我一个嵌套对象的文件,如 items: { items: { ... }}
import React from "react";
import ItemsList from "./ItemsList.jsx";
const Overview = items => {
console.log(items);
return (
<>
<h1>Overview</h1>
<ItemsList items={items} />
</>
);
};
export default Overview;
有人可以解释一下这是自动嵌套的原因吗?天呐!
解决方案
在您的第三条路线中-
<Route path="/overview" render={() => <Overview items={items}
/>} />
您正在使用render方法而不是component方法,这三种方法中都可以使用<Route>
使用render,您可以传递一个在位置匹配时将调用的函数。
那么你的功能在这里做什么?它返回一个component
你正在传递的物品道具,其值为{items}
const { items } = this.state;
在这里,您正在使用 ES6 解构。基本上,从状态对象中获取项目本身就是另一个对象。
您的Overview
组件将接收Items
具有Items
对象值的道具,以及其他路由道具,如匹配、历史、位置。
推荐阅读
- python - 获取公会和默认频道 ID
- rust - 为什么编译器要求我在此处添加 return 语句?
- javascript - npm Start 导致睡眠无法识别
- c - 这个 C 斐波那契程序有什么问题?
- ruby-on-rails - LoadError:无法加载此类文件 - 天蓝色
- python - 从多个模块读取和写入配置文件
- swift - TableView 单元格行数据在滚动时隐藏/取消隐藏
- node.js - 通过本地代理从node js连接redis
- reactjs - 如何获取同一上下文的多个上下文提供者的值
- spring - 为 spring-restdocs-asciidoctor 指定自定义片段目录?