Реагирует на событие дочернего компонента onChange дважды - PullRequest
0 голосов
/ 11 января 2019

Я работаю над компонентом выбора значков.

В дочернем компоненте обработайте this.props.onChange следующим образом:

handleClick( val ){
        this.setState({ value: val });
        this.props.onChange( val );
}



render(){
      return(
        <div 
            key={ index } 
            className={
                classnames(
                    'icon-item-box',
                    {'active-icon': name == this.state.value}
                )
            }
            onClick={ () => this.handleClick( name ) }>
                <div><i className={ name }></i></div>
                <span>{ name }</span>
        </div>
      );
}

И в родительском я использую этот компонент, как это:

<TheIconPicker 
        value={ icon }
        onChange={
                (val) => {
                        setAttributes( { icon: val } )
                        console.log( icon );
                }
        }
/>

Когда я выбираю значок, т.е. нажимаю на значок, значение icon печатается дважды в консоли, если щелкнуть в первый раз, в противном случае, когда вы нажимаете на другой значок, сначала печатается старое значение. а затем текущий.

Есть идеи, почему это может происходить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...