Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coffeescript 链接React中的两个输入字段_Coffeescript_Reactjs - Fatal编程技术网

Coffeescript 链接React中的两个输入字段

Coffeescript 链接React中的两个输入字段,coffeescript,reactjs,Coffeescript,Reactjs,我有一个有两个输入的表单,它充当各种计算器。想想抵押贷款计算器之类的东西。用户需要能够在输入A中输入一个值(int或decimal),并让它为输入b计算一些值。同样,用户必须能够将值输入到输入b(int)中,并让它计算输入a的值。这些值应根据用户类型进行计算 我已经开始计算了,但是当我尝试a:清空字段重新开始时,我遇到了问题;或b:尝试在输入a中输入小数点 在第一种情况下,两个输入都不允许我删除最后一个字符。即使我高亮显示整个值并点击backspace,输入仍然保持在任何值 在第二种情况下,小数

我有一个有两个输入的表单,它充当各种计算器。想想抵押贷款计算器之类的东西。用户需要能够在输入A中输入一个值(int或decimal),并让它为输入b计算一些值。同样,用户必须能够将值输入到输入b(int)中,并让它计算输入a的值。这些值应根据用户类型进行计算

我已经开始计算了,但是当我尝试a:清空字段重新开始时,我遇到了问题;或b:尝试在输入a中输入小数点

在第一种情况下,两个输入都不允许我删除最后一个字符。即使我高亮显示整个值并点击backspace,输入仍然保持在任何值

在第二种情况下,小数永远不会取。如果我尝试输入
2.2
,我会得到
22

根据React文档,我使用的是
onChange
事件处理程序,它设置组件的状态,然后输入显示该状态

代码示例如下:

  handleIntervalChange: ->
    iVal = parseFloat @refs.confidenceInterval.getDOMNode().value
    iVal = iVal/100
    lVal = parseFloat @refs.confidenceLevel.getDOMNode().value
    return false if _.isNaN ival
    docCount = @calcDocsByCLevel lVal, iVal
    docCount = null if _.isNaN(docCount) or docCount is Infinity
    @setState
      targetCLevel: lVal
      targetCInterval: iVal
      docCount: docCount

  handleDocChange: ->
    docCount = parseInt @refs.docCount.getDOMNode().value
    return false if _.isNaN docCount
    lVal = parseFloat @refs.confidenceLevel.getDOMNode().value
    @setState
      targetCLevel: lVal
      targetCInterval: @calcIntervalByDocCount lVal, docCount
      docCount: docCount

  render: ->
    <fieldset>
      <div className='controls'>
        <label htmlFor='confidence-interval'>
          Confidence interval (%)
        </label>
        {<ValidatorTooltip errors={@state.errors['confidence-interval']}/> if @state.errors}
        <input type='text' id='confidence-interval'
        className={cIntervalClasses} ref='confidenceInterval'
        value={@state.targetCInterval * 100}
        onKeyUp={@handleKeyUp} onChange={@handleIntervalChange} />
      </div>
      <div className='controls'>
        <label htmlFor='doc-count'>Number of documents</label>
        {<ValidatorTooltip errors={@state.errors['doc-count']}/> if @state.errors}
        <input type='text' id='doc-count' className={docClasses}
        ref='docCount' onChange={@handleDocChange} onKeyUp={@handleKeyUp}
        value={@state.docCount} />
      </div>
    </fieldset>
handleIntervalChange:->
iVal=parseFloat@refs.confidenceInterval.getDOMNode().value
伊瓦尔=伊瓦尔/100
lVal=parseFloat@refs.confidenceLevel.getDOMNode().value
如果u.isNaN ival,则返回false
docCount=@calcDocsByCLevel lVal,iVal
如果u.isNaN(docCount)或docCount为无穷大,则docCount=null
@设定状态
目标:利瓦尔
targetCInterval:iVal
docCount:docCount
handleDocChange:->
docCount=parseInt@refs.docCount.getDOMNode().value
如果uu.isNaN docCount,则返回false
lVal=parseFloat@refs.confidenceLevel.getDOMNode().value
@设定状态
目标:利瓦尔
targetCInterval:@calcIntervalByDocCount lVal,docCount
docCount:docCount
渲染:->
置信区间(%)
{if@state.errors}
文件数量
{if@state.errors}

明白了。问题出在我的计算方法上——我需要一些逻辑来捕捉文档或间隔字段是否为空(然后将其他字段渲染为空)。

你能提供一个重现问题的方法吗?尝试,但我无法让组件渲染。