簡體   English   中英

如何動態加載單選按鈕並在反應中使用check屬性?

[英]how to load radio buttons dynamically and use check property in react js?

我正在嘗試為單選按鈕創建一個通用輸入字段,我將在我的項目中使用每當我需要在reactjs中的單選按鈕,所以我想知道如何動態傳遞單選按鈕,以便默認情況下檢查第一個元素以及如何在map函數中使用checked屬性

render() {
    var self = this;
    return(
      <div>
      {
        self.props.options.map(function(option){
          return <label key={option[self.props.id]}><input type="radio" className={self.props.className}
          checked={?????} key={option[self.props.id]}
          onChange={self.props.onChange} value={option[self.props.name]} />{option[self.props.name]}</label>
        })
      }
      </div>
    );

  }

options是我傳遞給map函數的對象數組

任何幫助都會非常有幫助..

提前致謝 :)

您可以保持已檢查索引的狀態並將其初始化為0,並在onchange函數上將其更改為所選索引。

就像是 :

<div>
{ self.state.options.map(function(option,i){
      return <label key={option[self.props.id]}>
                 <input type="radio" 
                        className={self.props.className}
                        checked={i==self.state.checkedIndex} 
                        key={option[self.props.id]}
                        onChange={self.onChange.bind(this,i)} 
                        value={option[self.props.name]} 
                 />
                 {option[self.props.name]}
             </label>
      })
}
</div>

以及你的onchange功能

onChange = function(i) {
     this.setState({checkedIndex : i})
}

你需要使用狀態。 用這個:

this.state={checked: 0}

onChange(i){
     this.setState({
         checked:index
     });
  }


render() {
    return(
        <div>
            {
                this.state.options.map((option,i)=>{
                    return <label key={option[this.props.id]}>
                                <input 
                                    type="radio" 
                                    className={this.props.className} 
                                    checked={this.state.checked == i? true: false}
                                    key={option[this.props.id]}
                                    onChange={this.onChange.bind(this,i)} 
                                    value={option[this.props.name]} />
                                {option[this.props.name]}
                            </label>
                })
            }
        </div>
    );
}

檢查工作小提琴: https//jsfiddle.net/039eq8bx/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM