私はReactJSを使い慣れていますが、すべて同じオプションが選択できる4つのドロップダウンメニューを作成しようとしていますが、オプションを選択すると、ドロップダウン。ドロップダウンオプションの削除を反応
1
A
答えて
0
あなたには、いくつかを提供してくださいすることができますが、すべての使用値を格納し、バックドロップダウンコンポーネントにプロパティとして渡す必要があります親コンポーネントを必要とするので、彼らは
const options = ['A', 'B', 'C', 'D', 'E'];
const isNotUsed = unavailable => item => unavailable.indexOf(item) === -1;
const Select = ({ onChange, unavailable, value, field }) => (
<select onChange={e => onChange(e.target.value)} value={value}>
<option key="">Choose</option>
{options.filter(isNotUsed(unavailable)).map(item => (
<option key={item} value={item}>{item}</option>
))}
</select>
);
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
values: {}
};
}
handleChange(field, value) {
this.setState(state => ({
...state,
values: {
...state.values,
[field]: value,
}
}));
}
render() {
const unavailableFor = (field) =>
Object.keys(this.state.values)
.map(key =>
key !== field
? this.state.values[key]
: null
)
.filter(Boolean); // remove empty
return (
<div>
{['first', 'second', 'third', 'fourth'].map(field => (
<Select
key={field}
field={field}
unavailable={unavailableFor(field)}
onChange={this.handleChange.bind(this, field)} />
))}
</div>
);
}
}
関連する問題
- 1. は/フラックスと反応 - 削除
- 2. 反応中のインラインリスナーを削除する
- 3. 反応ソートツリーのノードを削除
- 4. ドロップダウンオプション他のドロップダウンから削除
- 5. 反応したネイティブで複数のコンポーネントを削除する
- 6. Disqusから反応のテキストを削除する
- 7. コンポーネントを削除して反応します
- 8. 要素を削除するときに反応するアニメーション
- 9. アンロード/解放/削除ランタイムからのネイティブビューに反応する
- 10. 反応ルータブラウザの削除履歴変更リスナー
- 11. Facebook Graph API:投稿への反応の追加または投稿からの反応の削除
- 12. 反応の削除ボタンを使ってリストから項目を削除する方法は?
- 13. 反応の中の新しいfirebase onAuthStateChangedリスナーを削除するには
- 14. 光沢のある反応入力の警告を削除するには
- 15. 反応中の小道具を削除することができます
- 16. 反応ルータはindex.htmlにリダイレクトし、.htaccessのURLからwwwを削除します
- 17. 2つの値を共有して重複ドロップダウンオプションを削除します
- 18. browser.jsから反応するJSX依存関係を削除する
- 19. Cocoa-Touch - ABGroupCreate(グループの削除)の反対
- 20. 反応ネイティブランアンドロイドと反応ネイティブスタート
- 21. 反射によるルーティングイベントハンドラの削除?
- 22. npm実行時にsetup.jsが反応定型文で削除される
- 23. 反応し、ツールボックスの反応ネイティブアプリ
- 24. 反応がネイティブで反応しない
- 25. 反応対反応DOM混乱
- 26. 反応ステータス404と反応ルータとHTMLWebpackPlugin
- 27. と反応して反応しない
- 28. ドロップダウンオプションに応じたテーブルの内容の変更
- 29. を除去反応onclickの私は、次のしている
- 30. 反応のキーバインド
を排除すべきかのオプションを知っていますすでに試したことを説明するコード? –
@Moonerumaあなたがすでに試したことと結果を教えてください。あなたが試したことのいくつかのコードを提供してください。 – Ganesh