Erwartet onClick-listener, um eine Funktion geben, stattdessen bekam der Typ object - reagieren redux

Wie schon im Titel, ich bin immer der Fehler
Erwartet onClick-listener, um eine Funktion geben, stattdessen bekam der Typ object

Aber ich bin nicht in der Lage zu verstehen, warum dies nicht funktioniert.
soweit ich weiß, wird die onClick-listener IST eine Funktion.

Hier, die CharacterList Komponente, wo der Fehler kommt,

import React,{Component} from 'react';
import {connect} from 'react-redux';
import {addCharacterById} from '../actions';
import {bindActionCreators} from 'redux';


class CharacterList extends Component{

    render(){
        //console.log('name : ',this.props.characters[2].name);
        return(
            <div>
            <h3>Characters</h3>
        <ul>
        {this.props.characters.map((character)=>{
            return(<li key={character.id}>{character.name}
                <div
                onClick={this.props.addCharacterById(character.id)}
                >+</div>
                </li>);
        })}
        </ul>
            </div>

            )
    }
}

function mapStateToProps(state){
    return {
        characters:state
    }
}




export default connect(mapStateToProps,{addCharacterById})(CharacterList);

Und hier ist die Aktion creator

export const ADD_CHARACTER='ADD_CHARACTER';
export function addCharacterById(id){
    var action ={
        type:ADD_CHARACTER,
            id
        }
        return action;

}

So, was denken Sie?
was ist hier das problem?

"soweit ich weiß, wird die onClick-listener IST eine Funktion." Sind Sie sich da sicher? console.log ist eine Funktion. Ist console.log("Hello") eine Funktion?
wo siehst du die Konsole.log("Hallo")??
Es war eine Analogie. this.props.addCharacterById ist eine Funktion. Ist this.props.addCharacterById(character.id) eine Funktion?
Einen Aufruf der Funktion ist nicht eine Funktion. Ein Funktionsaufruf, der einen Wert zurückgibt. Du bist nicht die übergabe einer Funktion als onClick prop. Sie übergeben den Wert von der Funktion zurückgegeben wird.
hmm,ja. Lesen der anderen Antworten zu, die sagen das gleiche. Ich denke ich bekomme es jetzt.

InformationsquelleAutor faraz | 2017-06-29

Schreibe einen Kommentar