3 回答

TA贡献1801条经验 获得超16个赞
这是您的代码的一些修复。请看一下以了解如何:
1-我们通过将选择的输入值保持在我们的状态来对其进行控制。(onSelectValueChange)
2-我们的条件仪表板组件如何使用当前选择输入值进行渲染
import React, { Component } from 'react'
import Select from 'react-select'
import removeDuplicates from '../../helpers.js'
import Dashboard from '../../containers/Dashboard'
class ExportDropDown extends Component {
constructor(props) {
super(props)
this.state = {
dropdownValue: null
}
this.onSelectValueChange = this.onSelectValueChange.bind(this)
}
onSelectValueChange (event) {
this.setState({
dropdownValue: event.target.value
})
}
render() {
const uniqueArray = removeDuplicates(this.props.data, 'Expert')
return (
<div>
<select
onChange={this.onSelectValueChange}
value={dropdownValue}
>
{
uniqueArray.map(
(d) => <option key={d.Expert} value={d.Expert}>{d.Expert}</option>
)
}
</select>
{
dropdownValue &&
<div className={'lll'}>
<Dashboard filter={dropdownValue} />
</div>
}
</div>
)
}
}
export default ExportDropDown

TA贡献1802条经验 获得超6个赞
您尝试将一个值返回到onChange不希望返回值的回调。仅render钩子的返回值将被呈现。
您可以将dropdown值保持在您的状态,并在render挂钩中决定要呈现的内容:
render() {
const filterElem = this.createFilter();
...
return (
<div>
Something
...
{ filterElem }
</div>
);
}
reload(event) {
const { value: dropDownValue } = event.target;
this.setState({ dropDownValue });
}
createFilter() {
const { dropDownValue } = this.state;
return dropDownValue ? <MyFilterComponent /> : null;
}
添加回答
举报