react 用了antd框架,输入框只能输入一个字符,然后就失去焦点了,哪位知道怎么处理吗?

   return _.map(data, item => {
      return (
        <Form.Item label={`${item.value}`} key={item.id}>
          {getFieldDecorator(`${item.key}`, {
            rules: item.required ? [{ required: item.required, message: `${item.value}值不能为空!` }] : [],
            initialValue:
              item.key === 'equipmentType'
                ? paramList[`${item.key}`] === 1
                  ? '定频'
                  : '变频'
                : item.key === 'rotor'
                  ? paramList[`${item.key}`] === 1
                    ? '单转子'
                    : '双转子'
                  : paramList[`${item.key}`]
          })(
              <InputNumber
                  key={item.id}
                  disabled={item.key === 'equipmentType' || item.key === 'rotor' || !isAuthorized ? true : false}
              />
          )}
        </Form.Item>
      );
    });
阅读 2.6k
1 个回答

失去焦点的原因是这个 input 刷新了
所以是这个 input 或者他的父元素被react认为是「新元素」而非「修改值」
所以应该找找是不是哪个 key 跟随输入框 onChange 变了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题