React Redux - 获取用户输入值[重复]

Posted

技术标签:

【中文标题】React Redux - 获取用户输入值[重复]【英文标题】:React Redux - Get User input value [duplicate] 【发布时间】:2018-07-29 23:14:34 【问题描述】:

我想获取用户的输入值,然后在我的 Redux 操作fetchData 中使用它。我想在input.onChange时更改我的组件状态中的一个变量,然后从中获取字符串以使用参数调用我的方法。

我在handleChange 上发现了一个错误this is undefined

import React,  Component  from 'react';
import  connect  from "react-redux";
import  fetchData  from "../actions/fetchData";

class SearchBar extends Component 

    constructor() 
        super()

        this.state = 
            tags: ''
        
    

    buttonClicked() 
        this.props.fetchData(this.state.tag)
    

    handleChange(e) 
        this.setState( tags: e.target.value )
    

    render() 
        return (
            <section className="section">
                <div className="columns">
                    <div className="column is-half is-offset-one-quarter">
                        <div className="field has-addons">
                            <div className="control is-expanded">
                                <input className="input" type="text" placeholder="dog" onChange=this.handleChange/>
                            </div>
                            <div className="control">
                                <a className="button is-info" onClick=this.buttonClicked>
                                    Random!
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
        )
    


export default connect(null,  fetchData )(SearchBar);

我在这里想念什么?

【问题讨论】:

【参考方案1】:

您必须将this 绑定到您的函数,试试这个:

...
constructor() 
  super()

  this.state = 
      tags: ''
  
  this.buttonClicked = this.buttonClicked.bind(this);
  this.handleChange = this.handleChange.bind(this);

...

另外,看看why do you need to bind this on the constructor。

【讨论】:

好的,我会试试的。但这也是好方法吗?我刚刚看到我可以使用箭头函数来不必编写这段丑陋的代码;) 这并不难看,只是我们这样做的方式。但你是对的,你也可以使用箭头函数,但请记住,你可能不想总是绑定this,这就是为什么在构造函数中绑定很方便。

以上是关于React Redux - 获取用户输入值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

react-redux,使用一个操作从两个输入字段中更改对象键/值

react redux中如何防止重复的列表对象

React演示组件无法使用反应容器从redux商店读取值

处理 CRUD 应用程序中的重复值错误(react-redux + express-mongoose)

减少 React/Redux 中的调度重复

在 react redux saga 中处理同步