Javascript HandleSubmit Redux形式为React Native';t工作(无打印值)
我正在使用Redux表单捕获提交的用户信息。我已经将Redux表单与存储连接起来,并按照说明编写表单,但是当单击submit按钮时,没有传递任何值 我通常不会问堆栈溢出,所以请原谅我的措辞不好。我不知道如何表达我的问题 我将我的代码复制到零食博览会(链接:) 这是我的密码: 组件/Form.jsJavascript HandleSubmit Redux形式为React Native';t工作(无打印值),javascript,reactjs,react-native,redux,redux-form,Javascript,Reactjs,React Native,Redux,Redux Form,我正在使用Redux表单捕获提交的用户信息。我已经将Redux表单与存储连接起来,并按照说明编写表单,但是当单击submit按钮时,没有传递任何值 我通常不会问堆栈溢出,所以请原谅我的措辞不好。我不知道如何表达我的问题 我将我的代码复制到零食博览会(链接:) 这是我的密码: 组件/Form.js import React, { Component } from 'react'; import { Field, reduxForm } from 'redux-form'; import { Sty
import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form';
import { StyleSheet, View, Text, TouchableOpacity, TextInput } from 'react-native';
const renderField = ({ label, keyboardType, name }) => {
return (
<View>
<Text>{label}</Text>
<TextInput keyboardType={keyboardType}
>
</TextInput>
</View>
);
};
const submit = values => {
alert(`here is the value ${JSON.stringify(values)}`)
}
const ContactComponent = props => {
const { handleSubmit } = props;
console.log('handle submit ...');
console.log(handleSubmit);
return (
<View>
<Text>Redux-form example</Text>
<Field keyboardType="default" label="Username: " component={renderField} name="Username" />
<Field keyboardType="email-address" label="Email: " component={renderField} name="Email" />
<TouchableOpacity onPress={handleSubmit(submit)} style={{ margin: 10, alignItems: 'center' }}>
<Text>Submit</Text>
</TouchableOpacity>
</View>
);
}
const ContactForm = reduxForm({
form: 'contact', // a unique identifier for this form
})(ContactComponent);
export default ContactForm;
Screen/HomeScreen.js
import { createStackNavigator, createAppContainer } from 'react-navigation';
import HomeScreen from '../screens/HomeScreen';
import React, { Component } from 'react';
import { View, Icon} from 'native-base';
const MainNavigator = createStackNavigator({
Home: { screen: HomeScreen }
// AddTransaction: { screen: AddTransaction },
// TransactionList: { screen: TransactionList }
})
const Main = createAppContainer(MainNavigator);
export default Main;
import React, {Component} from 'react';
import { Container, View, Text, Content, Button, Form } from 'native-base';
import ContactForm from '../components/Form.js';
class HomeScreen extends Component {
static navigationOptions = {
title: 'Home',
}
render() {
return (
<Container>
<ContactForm/>
</Container>
);
}
}
export default HomeScreen;
import React from 'react';
import { View, Text } from 'native-base';
import Main from './components/MainComponent';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware, combineReducers } from 'redux';
import { createLogger } from 'redux-logger';
import { reducer as formReducer } from 'redux-form';
const rootReducer = combineReducers({
form: formReducer,
});
export const store = createStore(rootReducer)
export default class App extends React.Component {
render() {
return (
<Provider store={store}>
<Main />
</Provider>
);
}
}
import React,{Component}来自'React';
从“本机基”导入{容器、视图、文本、内容、按钮、表单};
从“../components/Form.js”导入ContactForm;
类主屏幕扩展组件{
静态导航选项={
标题:"家",,
}
render(){
返回(
);
}
}
导出默认主屏幕;
App.js
import { createStackNavigator, createAppContainer } from 'react-navigation';
import HomeScreen from '../screens/HomeScreen';
import React, { Component } from 'react';
import { View, Icon} from 'native-base';
const MainNavigator = createStackNavigator({
Home: { screen: HomeScreen }
// AddTransaction: { screen: AddTransaction },
// TransactionList: { screen: TransactionList }
})
const Main = createAppContainer(MainNavigator);
export default Main;
import React, {Component} from 'react';
import { Container, View, Text, Content, Button, Form } from 'native-base';
import ContactForm from '../components/Form.js';
class HomeScreen extends Component {
static navigationOptions = {
title: 'Home',
}
render() {
return (
<Container>
<ContactForm/>
</Container>
);
}
}
export default HomeScreen;
import React from 'react';
import { View, Text } from 'native-base';
import Main from './components/MainComponent';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware, combineReducers } from 'redux';
import { createLogger } from 'redux-logger';
import { reducer as formReducer } from 'redux-form';
const rootReducer = combineReducers({
form: formReducer,
});
export const store = createStore(rootReducer)
export default class App extends React.Component {
render() {
return (
<Provider store={store}>
<Main />
</Provider>
);
}
}
从“React”导入React;
从'native base'导入{View,Text};
从“/components/MainComponent”导入主组件;
从'react redux'导入{Provider};
从“redux”导入{createStore、applyMiddleware、CombineReducer};
从“redux logger”导入{createLogger};
从'redux form'导入{reducer as formReducer};
const rootReducer=combinereducer({
形式:formReducer,
});
export const store=createStore(rootReducer)
导出默认类App扩展React.Component{
render(){
返回(
);
}
}
尝试将
输入
道具包含到您的文本输入
中,如下面的示例所示
const renderField=({label,keyboardType,name,input})=>{
返回(
{label}
);
};
太棒了,它很管用。非常感谢,现在我觉得自己很傻:((