Почему React не распознает функцию, переданную другому компоненту? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть родительский компонент, в котором я создаю эту функцию, которая передается другому компоненту:

export default withRouter(({ history }) => {
    const selectedRouteStyle = currentPath => {
        if (history.location.pathname === currentPath) {
            return {
                color: '#565958',
                fontWeight: '700',
                borderBottom: '2px solid #4292ff',
            }
        } else {
            return {
                color: '#989e9c',
            }   
        }
    };

    return (
        <Child 
            selectedRouteStyle={selectedRouteStyle}
        />
    );
});

В дочернем компоненте я ссылаюсь на selectedRouteStyle следующим образом:

<Link 
    to="/profile/chronology" 
    className="App_profile_navigation_link"
    style={selectedRouteStyle('/profile/chronology')}
>
    Chronology 
</Link>

И из того, что я знаю, это должно работать нормально, но я получаю эту ошибку:

TypeError: selectedRouteStyle is not a function

Как мне заставить реагировать распознавать эту функцию?

1 Ответ

0 голосов
/ 20 апреля 2020

если вы используете компонент класса, вы должны использовать this.props.selectedRouteStyle('/profile/chronology'), а если вы используете функцию компонента, вам нужно использовать props.selectedRouteStyle('/profile/chronology')

...