Ожидаемый слушатель события onClick будет функцией, но получил тип объекта - ReactJS - PullRequest
0 голосов
/ 07 октября 2018

Я получаю ожидаемый onClick прослушиватель событий как функцию, но получил ошибку типа объекта.Может ли кто-нибудь помочь мне решить эту проблему?

Ниже приведен фрагмент кода:

render_detail_options = () => {
     return(
         <div>
            <component-name
                name={detail.name}
                recipient={detail.recipient}
            />
        </div>
      );
};
render = () => {
    return (
        <div className="details">
                <table>
                    <thead>
                        <tr>
                            <th>...</th>
                         </tr>
                    </thead>
                    <tbody>
                        {this.state.details.map((detail) => {
                            const option = this.props.options.find(option => option.id === detail.option_id);
                            return (
                                <tr key={detail.id}>
                                     <td>{detail.recipient}</td>
                                     <td>
                                        <some-component>
                                            <button>...</button>
                                            <span onClick={this.render_detail_options(share, model)}>Edit</span>
                                        </some-component>
                                     </td>
                                 </tr>
                           </tbody>); 

Ответы [ 3 ]

0 голосов
/ 08 октября 2018

Попробуйте выполнить рефакторинг, как это, и дайте мне знать, если это решит вашу проблему.

<some-component>
   <button onClick={() => this.render_detail_options(data)}>Edit</button>
</some-component>

Я бы также предложил посетить эти документы .У них есть все, что вам нужно.

0 голосов
/ 08 октября 2018

Вы не перезваниваете onClick.Попробуйте onClick={()=> this.render_detail_options(share, model)}.

0 голосов
/ 08 октября 2018
                                            <span onClick={this.render_detail_options(share, model)}>Edit</span>

попробуйте здесь с функцией стрелки ES6:

onClick = {(e) => this.handleClick (param, e)}

...