javascript - 路由渲染道具参数上的 ES6 解构
问题描述
这可能是一个奇怪的问题
但是这里有......
我有以下一段代码
const About = props => {
console.log(props.match);
console.log(props.location);
console.log(props.history);
return <div>About</div>;
};
const App = () => (
<div>
<BrowserRouter>
<Route path="/about" component={About} />
</BrowserRouter>
</div>
);
并且可以简写为 ES6 的对象解构特性,像这样
const App = () => (
<div>
<BrowserRouter>
<Route
path="/about"
render={({match, location, history}) => {
console.log(match);
console.log(location);
console.log(history);
return <div>About</div>;
}}
/>
</BrowserRouter>
</div>
);
我对渲染属性的箭头函数如何知道从道具中提取3个属性感到困惑?
我希望我的问题是有道理的。
谢谢
解决方案
它只是使用 JavaScript 的对象解构来解构 prop 中的route props参数render
。
如文档中所述,路由道具是一个对象,由
这实际上类似于这样写:
<Route
path="/about"
render={(routeProps) => {
const { match, location, history } = routeProps;
return <div>About</div>;
}}
/>
推荐阅读
- sql - 简单的字符串比较条件使查询运行时间更长
- javascript - 局域网 IP 地址的 JavaScript 检测
- r - 基于多个通配符的 Sparklyr Spark SQL 过滤器
- android - 未授予 READ_PRIVILEGED_PHONE_STATE 权限
- python - list.pop() 和 list = list[:-1] 的区别
- java - 返回 False 或对象的 java 函数
- python - 烧瓶 request.files 总是空的
- drupal - 如何根据条件将文章分配给特定用户?
- javascript - 如何在元素 ui 中使用 mouseenter
- eslint - 有没有办法运行“eslint --fix”并将修复输出到另一个文件?