Javascript React控制组件如何更新?
在Stephen Grider的Udemy“Modern React with Redux”课程中,给出了一个示例,其中输入元素的Javascript React控制组件如何更新?,javascript,reactjs,Javascript,Reactjs,在Stephen Grider的Udemy“Modern React with Redux”课程中,给出了一个示例,其中输入元素的值被设置该值的onChange事件更改。具体而言,该函数如下所示: onChange= function(event){ this.setState({ term: event.target.value}) } 输入组件如下所示: <input value = {this.state.term} /> 编辑:基本上我认为我的问题归结为:元素的值
值被设置该值的onChange
事件更改。具体而言,该函数如下所示:
onChange= function(event){
this.setState({ term: event.target.value})
}
输入组件如下所示:
<input value = {this.state.term} />
编辑:基本上我认为我的问题归结为:
元素的值
是否与事件.目标.值
相同
EDIT2:“相同的东西”在Javascript中是按引用传递的意思,即两个东西在同一个对象上引用相同的值吗
初始值=''
用户按'r'
您可以根据事件.target.value
设置状态。新的状态。术语是'r'
状态更改触发组件更新。您输入的值是this.state.term
或'r'
要回答您的编辑问题,请执行以下操作:
是和否值
最终将与事件.target.value
相同,但这只是因为该值使用的是已设置为事件.target.value
值的状态.term
event.target.value
=>确定=>state
=>确定=>input[value]
我想我的问题是,event.target.value
指向的元素不是与input.value
完全相同的元素吗?在视频中,他说“当你按下r时,输入的值没有改变。它只在组件重新启动时才会改变。”这是正确的。您可以在渲染中设置一个console.log来证明它。然后,event.target.value
不能引用与input[value]
相同的数据,对吗?没错,一个console.log()可以证明它。我会在7分钟内接受你的回答。
import React, { Component } from 'react';
class SearchBar extends Component {
constructor (props) {
super(props);
this.state = { term: '' };
}
render() {
return(
<div>
<input
value = {this.state.term}
onChange={event => this.setState({ term: event.target.value})} />
</div>
);
}
}
export default SearchBar;