小编ree*_*rix的帖子

React中的onChange不捕获文本的最后一个字符

这是我的渲染功能:

  render: function() {
    return  <div className="input-group search-box">
              <input
                onChange={this.handleTextChange}
                type="text"
                value={this.state.text}
                className="form-control search-item" />
              <span className="input-group-btn"></span>
        </div>
   }
Run Code Online (Sandbox Code Playgroud)

我有这个作为我的事件处理程序:

   handleTextChange: function(event) {
     console.log(event.target.value);
     this.setState({
       text: event.target.value
     });
   }
Run Code Online (Sandbox Code Playgroud)

问题是当我"保存"一个项目,或者console.log打印输出时,最后一个字符丢失了 - 例如,如果我输入"first",我将打印出"firs",并且需要是捕获最后一个角色的另一个关键事件.我已经试过onKeyUp-这并不让我在任何类型的,我也试着onKeyDownonKeyPress,其输出什么.这里发生了什么,为什么?我怎样才能让最后一个角色出现?

javascript reactjs

36
推荐指数
4
解决办法
2万
查看次数

你如何在Enzyme中模拟keyDown输入事件(或其他)?

我试图模拟一个keyDown事件,专门用于输入,keyCode: 13.我已经尝试了许多不同的方法来做到这一点,但它们都没有奏效.我也看过网上,似乎这个功能要么是错误的,要么在当前版本的Enzyme中不起作用.有没有人知道这个功能是否有效,如果有的话,模拟输入或其他类型的关键事件的正确语法是什么?谢谢!

这就是我目前所拥有的,它不起作用:

const input = wrapper.find('input');
input.simulate('keyDown', {keyCode: 13});
Run Code Online (Sandbox Code Playgroud)

我目前的酶版本是2.4.1

frontend unit-testing reactjs enzyme

34
推荐指数
4
解决办法
3万
查看次数

Yup中的条件验证

我有一个电子邮件字段,只有在选中复选框时才显示(布尔值为true).当表单被提交时,如果选中该复选框,我只需要该字段(boolean为true).

这是我到目前为止所尝试的:

    const validationSchema = yup.object().shape({
       email: yup
             .string()
             .email()
             .label('Email')
             .when('showEmail', {
                 is: true,
                 then: yup.string().required('Must enter email address'),
             }),
        })
Run Code Online (Sandbox Code Playgroud)

我尝试过其他几种变体,但是我从Formik和Yup那里得到错误:

Uncaught (in promise) TypeError: Cannot read property 'length' of undefined at yupToFormErrors (formik.es6.js:6198) at formik.es6.js:5933 at <anonymous> yupToFormErrors @ formik.es6.js:6198

我也从Yup那里得到验证错误.我究竟做错了什么?

javascript reactjs yup formik

19
推荐指数
6
解决办法
2万
查看次数

如何在酶中生成模糊或onBlur事件?

我试过了:

input.simulate('blur');
Run Code Online (Sandbox Code Playgroud)

input.simulate('onBlur');
Run Code Online (Sandbox Code Playgroud)

这些都不起作用.这甚至可以在Enzyme中使用(我使用的是2.4.1版本).

frontend unit-testing reactjs enzyme

17
推荐指数
1
解决办法
1万
查看次数

在IntelliJ中以交互模式打印Scala工作表结果

由于某种原因,REPL控制台(工作表的右侧)没有打印出中间值

例如,这就是我所拥有的:

object test {
  val obj = new MyObject(1)
  obj.value 
}

class MyObject(x: Int) {
  def value = x
}
Run Code Online (Sandbox Code Playgroud)

在REPL结果中,我只得到以下内容:

defined module test
.
.
.
defined class MyObject
Run Code Online (Sandbox Code Playgroud)

但是,我没有得到任何中间结果,例如我评估时 x.value

我希望有类似的东西:

> MyObject@14254345
> 1 
Run Code Online (Sandbox Code Playgroud)

x.value

有什么理由不打印出来?

scala intellij-idea read-eval-print-loop

14
推荐指数
2
解决办法
2968
查看次数

警告:运行`gem pristine --all`来重新生成已安装的gemspecs

不能为我的生活摆脱这个错误 - 一直在尝试一天无济于事.gem pristine --all什么也没做,也没有删除和重新安装捆绑.其他人遇到这个,知道该怎么办?我会在外面感谢答案!

完整的错误在这里:

警告:运行gem pristine --all以重新生成已安装的gem规范(如果使用bundle -path,则删除然后重新安装bundle)将提高Spring的启动性能.

每次运行Rails或Rails控制台时都会发生这种情况.

bundle ruby-on-rails

13
推荐指数
2
解决办法
2万
查看次数

使用Yup验证字符串或数字长度

是否有一个验证特定长度的yup函数?

我试过.min(5).max(5),但我想要的东西,保证数量正好是5个字符(即邮政编码).

javascript reactjs yup formik

13
推荐指数
8
解决办法
1万
查看次数

Lodash查找对象属性是否存在于数组中

我有一个这样的对象数组:

[ {"name": "apple", "id": "apple_0"}, 
  {"name": "dog",   "id": "dog_1"}, 
  {"name": "cat", "id": "cat_2"}
]
Run Code Online (Sandbox Code Playgroud)

我想插入另一个也被命名的元素,apple因为我不想在那里重复,我怎么能用lodash来查看数组中是否有一个具有相同名称的对象?

javascript arrays lodash reactjs

12
推荐指数
5
解决办法
6万
查看次数

Formik中的getFieldValue或类似内容

有没有办法在formik中的单击处理程序中获取字段的值?

你可以setFieldValue在那里使用,所以我假设(但找不到任何地方)Formik应该有类似的东西来检索值:

<Button onClick={() => getFieldValue('name') === 'Test' ? action1 : action2}
Run Code Online (Sandbox Code Playgroud)

在Formik中执行此操作的正确方法是什么?

javascript reactjs formik

11
推荐指数
1
解决办法
5115
查看次数

在React中使用this.props和props之间有区别吗?

在你定义之后this,使用this.props和之间有区别props吗?

constructor(props) {
  super(props);

  this.state = {
    input: this.props.input,
    input2: props.input2
  };
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,inputinput2这里有什么区别?

reactjs

10
推荐指数
2
解决办法
3756
查看次数