onClick中的onClick不起作用

时间:2018-06-02 17:59:15

标签: reactjs

我知道这个问题已被问过很多次了。我已经看了很多解决方案,而且我几乎是正面的,我有正确的语法。但是,由于onClick事件,我的console.log没有出现在我希望执行的函数中。我错过了一些非常简单的事吗?谢谢!

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

static int cc =0;
static FILE* in;

static char* getkw(){
    char tok[10];
    int i;
    cc = fgetc(in);
    for(i=0; i<=(int)sizeof(tok)-1 &&isalpha(cc);++i){
        tok[i]= cc;
        cc = fgetc(in);
    }                    
    tok[i]=0;
    return tok;
}

int main()
{
    in = fopen("/dir/dir/a.txt", "r");
    char *c= getkw();
    printf("%s", c);
    fclose(in);
    return 0;
}

这是服务器代码:

import React, { Component } from 'react';
import Header from './Header';
import AddButton from './AddButton';
import CardContainer from './CardContainer';
import style from '../style/App.css';



class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      cardTitles: ['first', 'second', 'third']
    };
    this.addCard = this.addCard.bind(this);
  }

  addCard(event) {
    event.preventDefault();
    console.log('ADDED')
    this.state.cardTitles.push('new');
    this.setState({
      cardTitles: this.state.cardTitles
    })
  }

  render() {
    return (
        <div className={style.appContainer}>
          <Header/>
          <AddButton onClick={this.addCard}/>
          <CardContainer cardTitles={this.state.cardTitles}/>
        </div>
    );
  }
}

export default App;

这是AddButton组件:

var express = require('express');
var bodyParser = require('body-parser');
var request = require('request');
var app = express();


app.use(express.static(__dirname + '/../builds'));
app.use(bodyParser.urlencoded({ extended: true }));









app.listen(3000, function() {
  console.log('listening on port 3000!');
});

1 个答案:

答案 0 :(得分:0)

确保您将onClick函数作为道具传递给AddButton组件,否则不会被触发。

您需要将以下代码放在AddButton

中的某个位置
this.props.onClick();

因此,假设AddButton有一个基础<button>元素,AddButton中的渲染将看起来像这样。

render() {
  return <button onClick={this.props.onClick}>Add</button>
}