Метод вызывается при рендеринге без реагирования на щелчки - PullRequest
0 голосов
/ 28 октября 2019

У меня проблема с тем, что метод вызывается автоматически при рендеринге в моем собственном приложении реакции. Вот фрагменты:

static navigationOptions = ({navigation}) => {
    return {
        headerTitle: 'Network',
        headerRight: () => (
            <View style={{flexDirection: 'row'}}>
            <Button
                title='Invite'
                color='#ccc'
                onPress={() => navigation.navigate('InviteUser')}
            />
                <Button
                    title='Search'
                    color='#ccc'
                    onPress={() => navigation.state.params.handleSearch}
                />
            </View>
            ),
    };
};

componentDidMount() {
    this.state = {
        dataSource:[],
    };
    this.props.navigation.setParams({ handleSearch: this.getNearbyUsers(user_id, auth_token)})
}

Это происходит специально для кнопки поиска. Инвайт работает отлично. Я все еще новичок в RN, так может кто-нибудь помочь, пожалуйста?

Редактировать * добавлено getNearbyUser ():

getNearbyUsers(user_id, auth_token) {
    console.log('Get Users: id:' + user_id);
    let formData = new FormData();
    formData.append('user_id', user_id);
    formData.append('auth_token', auth_token);
    fetch("https://{url}", {
        method: 'POST',
        header: {
            Accept: 'application/json',
            'Content-Type': 'multipart/form-data'
        },
        body: formData
        //JSON.stringify({'user_id': user_id, 'auth_token': auth_token})//, 'latitude': 33.0296843, 'longitude': -96.7059628})
    }).then(response => response.json())
        .then((responseJson) => {
            // console.log(responseJson.users[0])
            this.createSearchList(responseJson.users)
        }).catch((error) => {
            console.log('Local Network Error: ' + error)
    })
}

1 Ответ

2 голосов
/ 28 октября 2019

Изменить

this.props.navigation.setParams({ handleSearch: this.getNearbyUsers(user_id, auth_token)})

На

this.props.navigation.setParams({ handleSearch: () => this.getNearbyUsers(user_id, auth_token)})
...