我尝试使用最新版本的antd(3.10.0)和react(16.5.2)。
我根据https://reactjs.org/docs/refs-and-the-dom.html使用新的ref方式
this.myRef = React.createRef();
撕裂时,应该:
rend(){
<Select style={{ width: 200 }} ref={this.myRef}>
{Object.entries(this.state.catedict)
.map(en => <Option key={en[0]}>{en[1]}</Option>)}
</Select>
}
但是当我想获取Input或Select的值时
我尝试:
console.log(this.myRef.current.value);
但只会得到错误的结果。
我什至发现:
console.log(this.myRef.current);
结果是:
t {props: {…}, context: {…}, refs: {…}, updater: {…}, saveSelect: ƒ, …}
context: {}
props: {style: {…}, children: Array(2), prefixCls: "ant-select", showSearch: false, transitionName: "slide-up", …}
rcSelect: t {props: {…}, context: {…}, refs: {…}, updater: {…}, onInputChange: ƒ, …}
refs: {}
renderSelect: ƒ (n)
saveSelect: ƒ (n)
state: null
updater: {isMounted: ƒ, enqueueSetState: ƒ, enqueueReplaceState: ƒ, enqueueForceUpdate: ƒ}
_reactInternalFiber: Na {tag: 2, key: null, type: ƒ, stateNode: t, return: Na, …}
__proto__: v
我要提供Select的值。我该怎么办?
答案 0 :(得分:1)
您可以通过ref获取它,而antd select是rc-select的临时选项,如果您想获取该值,仍然可以通过ref.rcSelect来获取
`the react dom`
<Select ref={r => this.ctryListRef = r} />
`the js code`
console.log(this.ctryListRef.rcSelect.state.value)
通过rcSelect.state.value,您可以获取该值。
此外,您还可以获取antd textArea值,这只是另一种情况〜
答案 1 :(得分:0)
每次更改都保存Select
的值!并在需要时使用它。
<Select style={{ width: 200 }} onChange={(value)=>{
this.selectValue = value;
}}>
并在其他地方使用它:
console.log('Select Value', this.selectValue)