好的,所以我有两个文件Test.js和Test2.js

Test.js:

import React from 'react';

const hello = ['hello', 'hi', 'sup'];

export const helloWorld = hello.map(helloCode => {
  return (
    <button onClick={this.handleClick}>{helloCode}</button>
  );
});


Test2.js:

import React from 'react';
import { helloWorld } from './Test';

export class RealTest extends React.Component {

  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    console.log('clicked');
  }

  render() {

    return (
      <div>
           {helloWorld}
      </div>
    );
  }
};


我不知道如何获取helloWorld来访问onClick函数,我尝试创建一个道具,尝试绑定它,但是除非它在Test2.js中,否则我无法使其工作,但是我需要它来在它自己的单独文件中。谢谢您的帮助。

最佳答案

@Adam建议传递上下文,但我认为它更像是React来传递道具。

export const HelloWorld = props => hello.map(helloCode => {
  return (
    <button
      key={helloCode} // <--- make sure to add a unique key
      onClick={props.handleClick}
    >
      {helloCode}
    </button>
  );
});


然后渲染:

 <div>
    <HelloWorld handleClick={this.handleClick} />
 </div>

10-04 16:02