Reputation: 25
Am trying to print the value of selected color on browser console,I dont understand why it print twice and how to correct it.
const ProductList = () => {
const [filters, setFilters] = useState({});
const handleFilters = (e) => {
const value = e.target.value;
const name = e.target.name;
setFilters({
[name]: value,
});
};
console.log(filters);
return (
<Container>
<Announcement />
<Navbar />
<Title>Dresses</Title>
<FilterContainer>
<Filter>
<FilterText>Filter Products:</FilterText>
<Select name="color" onChange={handleFilters}>
<Option disabled>color</Option>
<Option>white</Option>
<Option>black</Option>
<Option>red</Option>
<Option>pink</Option>
<Option>brown</Option>
<Option>green</Option>
<Option>milk</Option>
</Select>
</Filter>
</FilterContainer>
<Products />
<Newsletter />
<Footer />
</Container>
);
};
export default ProductList;
[![console image][1]][1][1]: https://i.sstatic.net/QKPHu.png
Upvotes: 0
Views: 52
Reputation: 2702
This is because of React Strict Mode code.
Remove -> React.StrictMode, from ReactDOM.render code.
Will render 2 times on every re-render:
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
Will render 1 time:
ReactDOM.render(
<>
<App />
</>,
document.getElementById('root')
);
Upvotes: 1