2017-01-15 9 views
0

Я пытался запустить кнопку, которая вызывает функцию из другого компонента.Реакция компонентов, как выполнить кнопку, вызывающую функцию из другого компонента

import ComponentB from './components/ComponentB ' 
 
import React, {Component} from 'react'; 
 

 
class ComponentA extends Component { 
 
    render() { 
 
     return 
 
     (
 
      <button onClick={this.handleClick}>click me</button>  
 
     ); 
 
    } 
 
} 
 

 
export default ComponentA;

это не сработало. кнопка не могла вызвать функцию. Что я делаю не так?

import React, { 
 
    Component 
 
} 
 
from 'react'; 
 

 
class ComponentB extends Component { 
 
    constructor() { 
 
    this.handleClick = this.handleClick.bind(this); 
 
    } 
 
} 
 
handleClick() { 
 
    console.log("hi hi hi"); 
 
} 
 
} 
 

 
export 
 
default ComponentB;

+0

Как связаны компоненты ComponentA и ComponentB? Если ComponentA включен в ComponentB в качестве дочернего элемента, вы можете использовать реквизиты, в противном случае вам нужно передать управление этим, чтобы какой-либо компонент был общим предком ComponentA и ComponentB – Bojangles

+0

. Я импортировал ComponentB в ComponentA для импорта ComponentB из './components/ ComponentB '; в –

+0

Я имею в виду, как выглядит ваш JSX? Используется ли 'ComponentA' в вызове' render() 'ComponentB'? – Bojangles

ответ

0

Вы импортирования ComponentB, но не использовать его, поэтому не работает. В вашем случае лучшим способом является реализация handleClick непосредственно на ваш ComponentA, но это не то, что вы хотите сделать. Если вы хотите использовать одни и те же функции с различными компонентами, используя redux вместе с реакцией js, вы получите работу и предоставите другим компонентам;)