本人初学react,现有需求是,要在表格中实现行可编辑,需要下拉框实现autocomplate效果,代码如下图:
在renderColumnsAuto函数中引用EditableCellAuto标签
标签EditableCellAuto定义在class外面
问题:
- 我是否可以将【EditableCellAuto】标签定义到class里面,如果可以应该怎么改写?
- 我想将【EditableCellAuto】定义到class里面的主要原因是,能够使用,一些class里面定义的方法(调用接口动态生成下拉框数据),如果,不定义到里面,怎么使用这些方法。
- 我不知道,这个【EditableCellAuto】叫标签还是应该叫组件,请大神推荐一些,相关语法的参考资料、博客地址,请大神赐教,感激不尽……
附上源代码
const EditableCellAuto = function({ editable, value1, onChange }) {
return <div>
{
editable?<AutoComplete
className="global-search"
size="large"
style={{ width: '100%' }}
dataSource={dataSource.map(renderOption)}
//onSelect={onSelect}
//onSearch={this.handleSearch}
onChange={value => onChange(value)}
placeholder="一级类型"
optionLabelProp="text"
>
</AutoComplete>
: value1
}
</div>
}
renderColumnsAuto = (text, record, column) => {
return (
<EditableCellAuto
editable={record.editable}
value1={text}
onChange={value => this.handleChange(value, record.id, column)}
/>
);
}
EditableCellAuto
叫组件。react
中都是组件当然可以定义到
class
中。如果就一个class
使用,就定义到class
中,如果多个地方使用,就定义到外面,然后export
出去。组件之间的方法互调:
父组件调用子组件的方法,可以使用
refs
。子组件调用父组件的方法,直接将方法传入到子组件中,在子组件中回调就可以了。参考资源,当然是
react
官方文档了。