鍍金池/ 問(wèn)答/HTML/ 關(guān)于react中的input radio問(wèn)題

關(guān)于react中的input radio問(wèn)題

有3個(gè)radio單選框,我發(fā)現(xiàn)不管我怎么點(diǎn)擊其它兩個(gè)沒(méi)有勾選上的單選框都沒(méi)反應(yīng),這個(gè)該怎么解決呢

const SexRadio=React.createClass({
getInitialState:function(){
return {}
},
render:function(){
return (
<div>
    <input type="radio" value="1" checked={false} /> 喜歡
    <input type="radio" value="2" checked={true} /> 不喜歡
    <input type="radio" value="3" checked={false} /> 無(wú)所謂
</div>
);
}
});
ReactDOM.render(<SexRadio/>,document.getElementById('SexRadio'));
回答
編輯回答
編輯回答
你的瞳

你這是受控組件的寫(xiě)法,所有input組件的checked屬性已經(jīng)被你寫(xiě)死了,所以就不會(huì)再響應(yīng)界面上的用戶(hù)交互行為了。正確的做法是:input checked值應(yīng)該通過(guò)組件的state獲取,每個(gè)input定義一個(gè)onChange方法,監(jiān)聽(tīng)inpupt的變化,將改變同步到state中。
好好了解下受控組件的概念,就不會(huì)有這個(gè)問(wèn)題了:https://reactjs.org/docs/form...

2017年4月16日 20:01