2017-09-17 12 views
0

私はReduxをReact-Native登録アプリに実装しようとしています。React Native + Redux:複数の機能を1つのボタンに付けることができない

ナビゲーションと状態の取り扱い:私は2つの機能を実行するために同じボタンを必要とし、そのような目的のために

問題のコンポーネントにはメソッドが付属していないというエラーが表示され続けているので、この問題が発生しています。

この問題に関連するコードは、下のここで見ることができます:あなたは、いくつかの{}そこ

onClick={(e) => this.empaRegister(e); navigate('Register2'); } 

に欠ける

import React from 'react'; 
 
import ReactNative from 'react-native'; 
 
import { AppRegistry,TextInput,View,StyleSheet} from 'react-native'; 
 
import { StackNavigator } from 'react-navigation'; //navigation between pages 
 
import { FormLabel, FormInput,Button,Text } from 'react-native-elements'; //ui 
 
import store from '../store/store' 
 
import { Provider } from 'react-redux'; 
 
import Register2 from './namefields'; 
 
import { register1 } from '../actions/registration' 
 
import {connect} from 'react-redux' 
 

 

 

 
let styles = {} 
 

 
class Register1 extends React.Component{ 
 
    constructor (props) { 
 
    super(props); 
 
    this.state ={ 
 
     email: '', 
 
     password: '', 
 
    }; 
 
    } 
 

 
    empaRegister (e) { 
 
     this.props.onRegister1(this.state.email, this.state.password); 
 
     e.preventDefault(); 
 
     } 
 

 
    render() { 
 
    const { navigate } = this.props.navigation; 
 
    return(
 
     <View> 
 
     <FormLabel 
 
      containerStyle={styles.labelContainerStyle}>Email</FormLabel> 
 
     <FormInput 
 
      ref='form2' 
 
      containerRef='containerRefYOYO' 
 
      textInputRef='textInputRef' 
 
      placeholder='Please enter your email address...' 
 
      onChangeText = {(newValue) =>this.setState({email:newValue})} 
 
     /> 
 
     <FormLabel containerStyle={styles.labelContainerStyle}>Password</FormLabel> 
 
     <FormInput 
 
      ref='form1' 
 
      placeholder='Please create a password...' 
 
      onChangeText ={(newValue) =>this.setState({password:newValue}) } 
 
     /> 
 
     <Button title="Next" onClick={(e) => this.empaRegister(e); navigate('Register2'); }/> 
 
     </View> 
 
    ); 
 
    } 
 
    } 
 

 
const Application = StackNavigator({ 
 
    Register1: {screen: Register1 }, 
 
    Register2: {screen: Register2} 
 
}); 
 

 
const mapDispatchToProps = (dispatch) => { 
 
    return { 
 
     onRegister1: (email, password) => { dispatch(register1(email, password)); } 
 
    } 
 
} 
 

 
export default connect(mapDispatchToProps)(Register1);

答えて

0

する必要があります

またはあなただけ

empaRegister (e) { 
    this.props.onRegister1(this.state.email, this.state.password); 
    navigate('Register2'); 
} 

を行い、その後、この

onClick={(e) => this.empaRegister(e)} 
のようにそれを使用することができます
関連する問題