【发布时间】:2019-06-17 23:25:41
【问题描述】:
我有一个由下拉列表和图表组成的页面,下拉列表从服务器接收项目,每当用户从下拉列表中选择某些内容时,触发 handleSelectionChange() 事件更新本地状态下的当前选择,整个 MetricList () 再次被执行,
在下面的代码中,每次我进行下拉选择时,“console.log("TESTING") 都会继续记录。
当我在下拉列表中选择某些内容时,我应该怎么做,它只会改变本地状态?
const MetricList = () => {
///get the list of metrics for dropdown
FetchMetricList();
//get dropdown data from the redux store.
const { getMetrics } = useSelector(getMetric);
//craete local state called metricSelected
const [metricSelected, setGreeting] = useState([]);
//loading spinner if no data arrives
if (!getMetrics) return <CircularProgress />;
//create dropdown data using Data from getMetrics
let data = [];
getMetrics.forEach(value => {
let obj = { key: value, text: value, value: value };
data.push(obj);
});
// FOR TESTING PURPOSE
console.log("TESTING")
//when user make selection in dropdown, update local state
const handleSelectionChange = (event, { value }) => {
setGreeting( [value] );
};
return (
<div>
<Dropdown
placeholder="Select..."
fluid
multiple
selection
data={data}
style={{ width: "500px" }}
onChange={handleSelectionChange}
/>
<Charts
dataSelected={metricsSelected}
/>
</div>
);
};
```
【问题讨论】:
标签: javascript reactjs function react-hooks react-component