![](/img/trans.png)
[英]React-select onChange trigger when user select same option
[英]React-Select trigger onChange when value changes
我正在使用 React-Select 並在我的頁面上有兩個下拉菜單。 When the first dropdown is selected it changes the value of the 2nd dropdown successfully but I'm trying to get the onChange on the 2nd dropdown to change when that happens also. 有沒有辦法做到這一點? 我制作了一個簡單示例的代碼框,以說明我要完成的工作
import React, {useState} from "react";
import Select from 'react-select';
import "./styles.css";
export default function App() {
const [genre, setGenre] = useState()
const artistslist = [
{value: 'ACDC', label: 'AC/DC'},
{value: 'LZ', label: 'Led Zeppelin'},
{value: 'Garth', label: 'Garth Brooks'},
{value: 'Alan', label: 'Alan Jackson'}
]
const genrelist = [
{value: 'rock', label: 'Rock'},
{value: 'country', label: 'Country'}
]
const handleArtistChange = (event) => {
console.log(event)
if (event.value === 'LZ' || event.value === "ACDC") {
setGenre({value: 'rock', label: 'Rock'})
} else {
setGenre({value: 'country', label: 'Country'})
}
console.log(genre)
}
const handleGenreChange = (event) => {
console.log("Genre Changed")
}
return (
<div className="App">
<Select options={artistslist} onChange={handleArtistChange} />
<Select options={genrelist} value={genre} onChange={handleGenreChange} />
</div>
);
}
React-Select 不支持此行為。 但是,只要有任何變化,您都可以手動調用 function:
const handleArtistChange = (event) => {
console.log(event)
if (event.value === 'LZ' || event.value === "ACDC") {
setGenre({ value: 'rock', label: 'Rock' })
} else {
setGenre({ value: 'country', label: 'Country' })
}
console.log(genre)
}
const handleGenreChange = (event) => {
console.log("Genre Changed")
}
const handleChange = (selector, event) => {
if (selector === "artist") {
handleArtistChange(event);
} else if (selector === "genre") {
handleGenreChange(event);
} else {
// Other logic
}
// Here you trigger whatever you want
}
return (
<div className="App">
<Select options={artistslist} onChange={event => handleChange("artist", event)} />
<Select options={genrelist} value={genre} onChange={event => handleChange("genre", event)} />
</div>
)
您應該使用 react-select 從第一個事件傳遞的值調用handleGenreChange
。 您只需從第一個事件創建一個事件鏈,而不是觸發另一個事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.