javascript - 我有两个组件,我想通过第一个组件中的函数将属性更改为第二个组件

标签 javascript reactjs

我需要使用其他组件的方法来获取数据,并且我还需要使用同一按钮上的功能来清除他的内容。也许有人有其他想法来做同样的事情。

通过handleAddAsk函数我得到了我需要的数据,这个函数是由ask__btn类按钮触发的,但我也想在这个按钮上使用handleClick函数来在发送数据后清除输入


//I deleted redundant code

import React, { Component } from 'react';
import Ask from './Ask';
import './App.css';

class App extends Component {
  state = {
    asks: [],
  }

  handleAddAsk(index, name, data) {
    let asks = data[index].asks.push({
      id: data[index].asks.length,
      name: name,
    })
    this.setState({ asks });
  }

}

//second class

class Ask extends Component {
    state = {
        input: '',
    }

    handleChange = e => {
        const name = e.target.name
        const value = e.target.value
        this.setState({
            [name]: value,
        })
    }
    handleClick = () => {
        this.setState({
            input: '',
        })
    }
    render() {
        return (
            <div className="ask">
                <label className="ask__label">{this.props.name}
                    <input className="ask__input" name="input" value={this.state.input} onChange={this.handleChange} type="text" placeholder="treść pytania ..." />
                </label>
                <button className="ask__btn" onClick={this.props.handleAddAsk.bind(this, this.props.index, this.state.input, this.props.data)}>Dodaj pytanie</button>
            </div >
        );
    }

最佳答案

在 Ask 类中编写自定义事件处理函数来调用 handleClickthis.props.handleAddAsk,然后将该处理函数绑定(bind)到 onClick 事件。或者在 handleClick 中调用 this.props.handleAddAsk 函数,并将 handleClick 分配给 onClick 事件。

关于javascript - 我有两个组件,我想通过第一个组件中的函数将属性更改为第二个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57391715/

相关文章:

javascript - HTML5 canvas中所有鼠标可拖动的对象都是基于setInterval的吗?

javascript - 如何将 React useState 钩子(Hook)解构到命名空间中?

reactjs - CSSTransition 组不工作(未定义)React.js

javascript - 为什么我的带有生成器函数的 setTimeout 没有触发?

javascript - 如何用ajax刷新评论?

javascript - jQuery - 反向操作

javascript - 将 css 附加到 Javascript 中的可打印 innerHTML div

javascript - 如何在 Intl.NumberFormat 中格式化货币符号?

reactjs - React-Select 从 1.x 升级到 3.0.4 - 未显示选定值

css - ReactCSSTransitionGroup 没有动画高度