Lobos / react-ui

A collection of components for React, base on bootstrap 4.0.
http://lobos.github.io/react-ui/
MIT License
1.63k stars 302 forks source link

Checkbox 使用后为何不能点击? #115

Open zhangqhzz opened 6 years ago

zhangqhzz commented 6 years ago

“Checkbox isIndicator “使用后,页面上点击没有反应,为什么?

Lobos commented 6 years ago

代码贴出来看一下呢。

zhangqhzz commented 6 years ago

知道原因了,需要onChange 并进行this.setState({}),否则 仅仅Checkbox isIndicator 是不行的

Lobos commented 6 years ago

嗯,是当受控组件使用了,需要自己处理状态的。

zhangqhzz commented 6 years ago

如果在Table控件外部进行全选操作?因为我不需要Table中的header,所以就不会有Header中的全选,我需要在外部添加全选checkbox。外部如何进行全选呢? 因为Table组件是用compose处理的,在Table组件外部如何得到内部的data,或在外部如何调用里面的handleSelect (d, e, checked),即内似内部的全选调用this.handleSelect.bind(this, 'all')

zhangqhzz commented 6 years ago

可能没有直接的方法,我可能要自己修改处理了

Lobos commented 6 years ago

这个就没办法用表格内置的checkbox了,可以自己加一列,里面放一个Checkbox。在外部定义一个变量管理。

zhangqhzz commented 6 years ago

谢谢。原先一直是用的spring mvc ,jsp做一些项目,现在要求学习用react 进行部分项目修改试试,原先页面用的表格控件,如JqGrid,非常好用,所以转到react,也想找一个类似的表格控件,实际很难找到好的,结果发现您的这个比较好,但我需要做一些修改

vipcxj commented 6 years ago

外部传入的属性请用props, 还有setState里的state你完全可以放在更外层管理~

vipcxj commented 6 years ago

说白了觉得你的观念得改变,用spring mvc的思路用react必定杯具

zhangqhzz commented 6 years ago

是的

zhangqhzz commented 6 years ago

在外部加Checkbox,但外部没办法得到内部的data,还是没法处理?

Lobos commented 6 years ago

单行render的时候可以拿到,你可以在render的时候存起来。

zhangqhzz commented 6 years ago

谢谢。我在Table.js的render 下,if(this.props.getData) this.props.getData(this.props.data),然后在使用Table组件的js文件中定义getData函数,并<Table getData={this.getData)可以得到了。

zhangqhzz commented 6 years ago

Table.js组件内部勾选 操作并进行this.setState({}),是仅对Table.js进行渲染,但如果我在调用Table.js的外部进行全选 并对this.arrayHolder进行add或remove后,也进行this.setState({})的话,是对 compose( Fetch(true), Filter, Sort, Pagination)(Table) 相关都渲染吗?

Lobos commented 6 years ago

会,一页数据量很大的情况下还是可能有一些性能问题的,所以要做分页。

vipcxj commented 6 years ago

你需要的是结合props和state,state可以存在上一级,也就是和相应用户操作的回调函数的同一级,然后将state作为props传给下一级,也就是你的table