Javascript React控制组件如何更新?

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} /> 编辑:基本上我认为我的问题归结为:元素的值

在Stephen Grider的Udemy“Modern React with Redux”课程中,给出了一个示例,其中输入元素的
值被设置该值的
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;