как передать две функции в onChange react redux

140
11 февраля 2019, 11:40

Хочу понять, как в onChange= передать две функции, когда пытаюсь написать туда check this.check() или даже onChange={event => this.check(event)} то первая функция не работает так, как нужно, как-будто в неё не приходит эвент, при этом одна она там абсолютно нормально работает

import React, {Component} from 'react'
import PropTypes from 'prop-types'
import CountReducer from '../reducers/CountReducer'
import { Link } from 'react-router-dom';
export default class Counter extends Component {
    constructor(props) {
        super(props);
        this.check = this.check.bind(this);
      }  
    check(event)
    { 
        this.props.onUpdateClick(event.target.value);
        this.props.onLink(event.target.value);
    }
    render() {
        const {count, wish_value, onIncreaseClick,onLink,onUpdateClick} = this.props
        if (count === 1){
        return(
            <div>
                <div>
                    <span>{count}</span>
                    <button  onClick={onIncreaseClick}>Increase</button>
                    <button onClick={onLink}>Поиск</button>
                    <button onClick={onLink}>
                        <Link  to="/search">Поиск</Link> 
                    </button>
                    <input value={wish_value} type="text" onChange={onUpdateClick} onClick={onLink}/>
                </div>
            </div>
        )} else { return (
<div>
                <div>
                    <span>{count}</span>
                    <button  onClick={onIncreaseClick}>Increase</button>
                    <button onClick={onLink}>Поиск</button>
                    <button onClick={onLink}>
                        <Link to="/" onClick={alert("неверное имя п")}>Поиск</Link>
                    </button>
                    <input value={wish_value} type="text" onChange={onUpdateClick} onClick={onLink}/>
                </div>
            </div>)
        }
    }
}

export const updateTodo = (wish_value) => {
    return {
        type:'update',
        wish_value: wish_value
    }
}

export const linkTodo = (wish_value) => {
    return {
        type: 'link',
        wish_value: wish_value
    }
}
function mapDispatchToProps(dispatch) {
return {
    onIncreaseClick: () => dispatch(actions.increaseTodo()),
    onLink: () => dispatch(actions.linkTodo()),
    onUpdateClick: event => dispatch((
        actions.updateTodo(event.target.value)
    ))
}

}

Answer 1

У меня получилось, спасибо @DmitryKozlov, изменения, которые я внёс:

check(event)
    { 
        this.props.onUpdateClick(event);
        this.props.onLink(event.target.value);
    }

<input value={wish_value} type="text" onChange={this.check} onClick={onLink}/>
READ ALSO
Javascript проблема добаваления классов css

Javascript проблема добаваления классов css

Возникла проблема с добавлениeм классов css с помашю JavascriptЕсть задача не использовать jquery

154
Сохранение web страницы в файл

Сохранение web страницы в файл

Есть страница с некоторыми записям и с check button у каждой записиПосле проставления галочек и нажатии на кнопку открывается новая страница,...

146
Размер Landing Page

Размер Landing Page

Сколько должен быть размер лэндинга? у меня оно весит 75мб - это много? слышал что размер лэндинга максимум должен быть 2 мб, а у меня 7

183
В чем может быть проблема выравнивания через row; col?

В чем может быть проблема выравнивания через row; col?

Нужно сделать сеткуПрописал код, но он выравнивает именно вертикально, впритык

175