dva的用法_【React】请问dva中 connect()()的用法。

这段代码是dva的基础代码

import React from 'react';

import { connect } from 'dva';

function IndexPage() {

return (

this is a div

);

}

export default connect()(IndexPage);

【请问】最后一行这个 connect()(IndexPage) 怎么理解?

还要请教:这两个括号的在一起的写法是es6语吗?(我在阮一峰的es6指南中没找到这个语法说明,我要看箭头函数一章,还是到哪章去了解这个()())

老司机能提供一个纯js的双括号函数案例吗?

p.s.

我思考了一下:之前见过 function(){}() 这样的最后放一个括号表示立即执行。请问和上边的这个有相通的地方吗?

谢谢您前来科普帮助,感谢老司机指路—-O(∩_∩)O

//▼补充代码,

import React from 'react';

import { connect } from 'dva';

import { Table, Pagination, Popconfirm, Button } from 'antd';

import { routerRedux } from 'dva/router';

function stuIndexPage({ dispatch, list: dataSource, loading, total, page: current }) {

return (

index 首页

);

}

function mapStateToProps({ stuIndexPage }){

return {

stuIndexPage

};

}

//▼还有这个,两个括号都传参了,搞不太懂是什么作用

export default connect(mapStateToProps)(stuIndexPage);

回答

connect 函数的返回值还是一个函数 这样说你懂了没

connect()(IndexPage)

// =>

const bindToComponent = connect()

export default bindToComponent(IndexPage)

export default connect(从 model 的 state 中获取数据)(要将数据绑定到哪个组件)

这个叫做柯里化

let add = function(x){

return function(y){

return x+y;

}

}

add(3)(4); //7

我想通了,我想通了,这不是什么es6语法。

感谢 lixuejiang 老师。函数的返回值还是一个函数 提醒了我!

也要感谢 u3u 老师,看头像疑似是个程序媛。其中connect 函数的返回值还是一个函数 提醒了我!

我写了个demo

function connect(howWay){

var toAlert = function(someWords){

alert(someWords);

}

var toConsoleLog = function(someWords){

console.log(someWords);

}

if(howWay=='alert'){

return toAlert

}else{

return toConsoleLog

}

}

//▼通过alert弹出来ok

connect('alert')('ok');

//▼通过控制台弹出来ok

connect()('ok');

connect('alert')('ok');

//这里一参表示返回一个什么样的【方法】

//二参表示用刚刚返回的【方法】处理什么,示例中处理字符【ok】

两个括号不是ES6的写法,只不过是第一次调用返回了一个函数,可以被再次调用,类型

function connect(props) {

return function(component) {

return

}

}

let connect = function (mapFunc) {

// ...

return function (component) {

// ...

return component;

}

}

这么写出来你应该就明白了。

这个说起来挺长的,你去看下react小书 http://huziketang.com/books/r…,着一张里面有详解,react小书第三阶段要10块钱,书写的挺好的,建议整体看一下

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值