我在Redux的React中工作,事情看起来非常自由,直到遇到一个问题为止。可能是我没有以正确的方式实现这一特定部分,但是我需要您的帮助。

所以我有一个react组件,在componentWillMount()上,我从API调用中获取数据

我将动作和动作创建者放在适当的位置,以便它调度getSupplier动作,我将它们以redux状态存储为SupplierList,该数组是一个对象数组,例如
[{name:'Bob',score:10,id:1},{name:'John',score:10,id:2}];

现在,我的UI由一个以名称和得分作为表数据的表组成。得分将是一个输入字段,最初将具有来自getSupplier服务的得分值。

我已经循环并返回组件中的jsx,如下所示

   render(){
       var data = this.props.supplierList;
       if(data.length){
            return (
               <div className='fx-container'>
                   {
                     data.map((v,i)=>{
                         (<div class='fx-table-row' key={v.id}>
                            <div class='fx-supp-name'>{v.name}</div>
                            <input
                            type='text'
                            className='fx-input'
                            value={v.score}
onChange={(e)=>{this.handleInputChange(e.target.value)}}
                            onBlur={(e)=>    {this.props.actions.updateScore(v.id,e.target.value)}}
                          </div>);
                      });
                   }
               <div>
            );
        }
      else{
        return null;
      }

    }


因此,我在绘制初始值,插入新值以及模糊时,需要通过分派一个以action.js文件编写的操作来更新新值。
我面临的问题是我无法在输入中插入任何值,也无法打退格并插入新值。

请帮助,因为我是新来的反应者和救赎者。
PS:上面的代码是一个伪代码,只是为了说明我的问题。

最佳答案

首先,您可能不想在componentWillMount中调用API。看到这篇文章:https://daveceddia.com/where-fetch-data-componentwillmount-vs-componentdidmount/

您无法修改输入的原因是,这是一个受控字段,并且您没有在调用onChange事件。见https://facebook.github.io/react/docs/forms.html

10-04 20:56