【发布时间】:2021-12-10 06:16:41
【问题描述】:
我有一个带有一些输入字段的模式。我可以轻松地在用户输入输入时自动传递数据,在输入字段中使用 onChange 函数,如
<Input onChange={this.props.store.handleCategoryChange} type="text" />
和..(使用 mobx 商店,虽然无关)
@observable categoryValue;
@action handleCategoryChange = (e, data) => {
this.categoryValue = data.value;
e.preventDefault();
};
但是,我想添加一个功能,用户可以在其中预先填写应用程序其他地方的信息。我有数据可以预填充输入字段,但我不知道如何在没有用户这样做的情况下以编程方式实际输入它?
我需要调用上面的handleCategoryChange 函数。但我的变量将等于data.value .. 这会带来问题!自己调用这个函数是不可能的,因为我不会有事件e 也不会有一个名为data.value 的值,因为我将“只是”自己传递一个变量。
在 React 中使用其他地方的变量以编程方式自动填充输入字段的正确方法是什么?我需要以某种方式调用onChange 函数,但输入值会有所不同..
【问题讨论】:
-
使用
controlled input元素,使用input元素定义value属性,如下所示:<Input value={variable_name} ....每当您更新该值时,该值将自动填充到输入元素中。查看文档以获取有关controlled component的更多详细信息:facebook.github.io/react/docs/forms.html#controlled-components -
我明白了,所以基本上有一个空变量,如果需要,我可以通过编程方式进行更改?否则,让它为 null 以便用户可以更改它?
-
刚刚尝试过 - 就像一个魅力,谢谢,只需将我的商店中的
categoryValue绑定到值!谢谢大佬。 -
是的,初始值可以为空。很高兴它起作用了:)
标签: javascript reactjs