取消选中特定复选框时,React切换不删除的选择字段
React toggle select field not removing when a specific checkbox is unchecked
我正在React中创建一个表单,如果选中特定的选择框,您可以选择一个州(如阿拉巴马州、阿拉斯加州等)。
我遇到的问题是,当取消选中该框时,States select组件不会被删除。
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 dev扩展中,初始状态设置为false
。切换项目时,它将显示Input{...}
,而此对象中的状态为null
。
我认为问题是state_checkbox
返回了一个对象,而不是布尔值。我已经搜索过了,但找不到用@setState
更新Input{...}
对象中的状态或用上面的propTypes
将其更改为布尔值的方法。
您使用@refs.state_checkbox
来确定是否应该渲染States
组件,但这个ref
始终是真实的。您可能打算使用@state
。
toggleStatesField: ->
console.log('Toggle state changed' + @refs.state_checkbox)
@setState({ state_checkbox: @refs.state_checkbox.refs.input.checked })
showStatesField: ->
if @state.state_checkbox
<States />
else
false
相关文章:
- Javascript删除字段
- 使用JQuery动态插入/删除字段
- jQuery根据下拉菜单中的选择创建和删除字段
- 如何删除字段中的字符 javascript
- 如何重置添加/删除字段
- 如何在更新时从 mongodb 集合中删除字段
- 用于添加/删除字段的Javascript函数
- 在Angular post请求之前删除字段中的空白
- Joomla!组件表单和jQuery来动态添加/删除字段的子集
- 创建重复表单部分,删除字段值
- 在Javascript中从复选框中添加/删除字段值
- 删除字段触发事件后,单击labeltexttpl
- 动态添加和删除字段的更好方法
- MongoDB在数组中添加和删除字段
- 如何删除字段集内的所有标签
- 如何在删除字段时重置JavaScript变量计数
- 在动态添加和删除字段后重新编号表单输入数组
- 如果值等于默认值,则在提交时删除字段上的值
- 根据下拉列表值删除字段RSS 0回复以电子邮件订阅
- 根据选择更改删除字段