Так что в этом случае вам нужно общее c и простое решение, поэтому в вашем штате, поскольку у вас есть только ограниченное количество игр, вы можете иметь переменную состояния, как показано ниже.
state = {selectBoxEnabled : {xo1: ['xo1variant', 'inCondition', 'outCondition'], cricket: ['variant'], 'split-score': ['split-score_select']} }
Таким образом, указанное выше поле selectBoxEnabled имеет тот же ключ, что и в вашем раскрывающемся поле
Game Select Box : xo1, cricket, split-score has option values
Поэтому, когда пользователь выберет опцию, вы получите ключ как xo1
Предположим,
Теперь вам нужно найти поля xo1 game
const findFields = (currentGameKey) => {
let selectBoxKeys = selectBoxEnabled[Object.keys(selectBoxEnabled).find(key => key === currentGameKey)]
this.setState(selectBoxKeys)
}
Теперь вы знаете, какие поля следует отображать, поскольку вы используете один и тот же компонент SelectInput
, вы можете сделать простой array.map и визуализировать поля из конфигурации.
Я надеюсь, что это даст лучшее понимание проблемы