4
リアクションにフォームを作成しています。特定の選択ボックスにチェックが入っていれば、状態(アラバマ、アラスカなど)を選択できるオプションがあります。特定のチェックボックスをオフにしてもトグル選択フィールドが反応しない
問題は、チェックボックスをオフにすると、状態選択コンポーネントが削除されないということです。
Input = require('react-bootstrap').Input
States = require('./States.cjsx')
module.exports = InputForm = React.createClass(
propTypes:
state_checkbox: React.PropTypes.bool
getInitialState: ->
{
state_checkbox: false
}
toggleStatesField: ->
console.log('Toggle state changed' + @refs.state_checkbox)
@setState({ state_checkbox: @refs.state_checkbox })
showStatesField: ->
if @refs.state_checkbox
<States />
else
false
render: ->
return(
<Input type="checkbox" ref="state_checkbox" label="Import State?" onChange={@toggleStatesField} value={@state.state_checkbox} />
{ @showStatesField() }
)
)
react開発者の拡張では、初期状態はfalse
に設定されています。項目がトグルされると、このオブジェクトの状態がnull
の間にInput{...}
と表示されます。
私は、問題がstate_checkbox
がブール値ではなくオブジェクトを返すと考えています。私は検索しましたが、オブジェクトの状態を@setState
で更新する方法や、上記のpropTypes
のブール値に変更する方法が見つかりません。
私の問題を解決してくれたベンに感謝します。私は2度引用する必要があるのですか? – MattAttack07
あなたは 'react-bootstrap'パッケージから' Input'を使用しています。これは実際にDOMにレンダリングされる内部入力要素を隠します。このため、実際のhtml入力を取得するには、 'Input'の内部参照をチェックする必要があります。 –