根据反应中的ID禁用相同的按钮

时间:2018-11-01 06:26:10

标签: javascript reactjs redux react-redux

实际上我是新来的反应者。

我有几个按钮,

<div className="rowContent">
            {(props.data.id === 0) ? null :
                <span className="">
                    <button type="button" id={props.type + props.index} className="btn btn-outline-primary btn-sm standard-btn-50" onClick={(e) => { props.onRemoveRow(e, props.data.id, props.type, props.noc) }}
                    >-</button>
                </span>}
            {(props.data.id === 0) ?
                <span>
                    <button type="button" id={props.type + props.index} className="btn btn-primary btn-sm standard-btn-50 margin-left-0" onClick={(e) => { props.onAddRow(e, props.data.id, props.type, props.data.level) }}
                        disabled={(props.limitExcedded) || (!props.data.technology) || (!props.data.type) || (!props.data.count)}
                    >+</button>
                </span> : null}
        </div>

因此,这里三个div的按钮相同。我是说它的循环渲染取决于类型。

所以,我在做什么,我想在某些情况下禁用此按钮。所以,我在这里通过一个道具。现在,发生的事情是,如果props变为true,则该特定的divs按钮被禁用,

但是,如果该道具在另一个div上变为假,那之前用于第一个div的上一个按钮也会启用。

this.state = {
      technologies: [],
      showLowError: false,
      showHighError: false,
      showMediumError: false
    }

现在,这三个是不同行的变量。现在,在这里

{(props.data.id === 0) ? <button type="button" disabled={(props.limitExceddedLow) || (props.limitExceddedHigh) || (props.limitExceddedMedium) || (!props.data.technology) || (!props.data.type) || (!props.data.count)} className="btn btn-primary btn-block h-20" onClick={(e) => { props.onAddRow(e, props.data.id, props.type, props.data.level) }}>+</button> : null}

现在,仍然发生的是,如果其中任何一个为真,那么也会禁用其他人。

所以,我不明白为什么会这样?有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

采用变量(var current_disable)来存储禁用按钮的ID 当另一个按钮的概率变为true时,通过使用curent_disable变量使该按钮变得容易,并存储该按钮的新ID