Продолжайте получать ошибку «Объект не является функцией» - PullRequest
0 голосов
/ 28 ноября 2018

Я получаю сообщение об ошибке «Объект не является функцией ...» для моего файла Main.js.Как это можно исправить и что я делаю не так?Вот скриншот ошибки: enter image description here.Также вот мой код для моего файла Main.js:

import React from 'react';
import { StyleSheet, Text, Image, View, Vibrate } from 'react-native';

import Settings from './Settings';
import Profile from './Profile';

import {connect} from 'react-redux';
import {saveProfile, saveSettings} from '../redux/actions';

class Main extends React.Component {

  componentWillMount() {
        if (!this.props.avatarUrl) {
            this.props.saveProfile(this.props.location);
        }
    }

  render() {
    return (
      <View style={styles.container, bgColor}>
        <Image
          source={this.props.avatarUrl}
          style={{width: 300, height: 300}}
        />
        <Text>{this.props.name}</Text>
        <Text>{this.props.phone}</Text>
        <Text>{this.props.email}</Text>
        <Settings />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

export default saveProfile (
  connect(
    state=>state.location,
    {saveProfile}
  )
)(Main);

Моя цель - отобразить информацию, сохраненную в избыточном формате.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Ваша проблема в том, как вы экспортируете свой основной модуль и как вы подключаете redux для использования реквизита. Я приведу вам следующий пример, чтобы дать вам представление об использовании redux ... `

actions.js

import * as ACTIONS from './types';

export const reset = () => {
  return { type: ACTIONS.RESET_STATE };
};

export const saveProfile = profile => {
  return { type: ACTIONS.SAVE_PROFILE, payload: profile };
};

export const saveSettings = settings => {
  return { type: ACTIONS.SAVE_SETTINGS, payload: settings };
};

reducer.js

import * as ACTIONS from './../actions/types';

const INITIAL_STATE = {
  profile: 0,
  settings: 0
};

export default (state = INITIAL_STATE, action) => {
  switch (action.type) {
    case ACTIONS.RESET_STATE:
      return { ...INITIAL_STATE };
    case ACTIONS.SAVE_PROFILE:
      return { ...state, profile: action.profile };
    case ACTIONS.SAVE_SETTINGS:
      return { ...state, settings: action.settings };
    default:
      return state;
  }
};

index.js / integrareducers

import { combineReducers } from 'redux';

import reducers from './reducer.js';

export default combineReducers({
  reducer: reducers
});

и использование в вас Главный класс

import { saveProfile, saveSettings } from './../redux/actions/index.js';

class Main extends Component {
  constructor(props) {
    super(props);
    this.state = {
      saveProfile: this.props.profile,
      saveSettings: this.props.settings
    };
{.....



.....}

const mapStateToProps = ({ reducers }) => {
  const { profile, settings } = reducers;

  return { profile, settings };
};

export default connect(mapStateToProps, { saveProfile, saveSettings })(Main);

Надеюсь, это поможет вам

0 голосов
/ 28 ноября 2018

Похоже, ошибка исходит из вашего оператора экспорта по умолчанию в нижней части.Этот конкретный экспорт выглядит так, как будто в нем есть синтаксическая ошибка, поэтому дважды проверьте его структуру в примере, который вы используете.

...