首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果导航到React Native中其他屏幕,如何保持formik表单值

在React Native中,要保持formik表单的值,可以通过以下步骤实现:

  1. 首先,确保你已经安装了formik库。可以使用以下命令进行安装:
代码语言:txt
复制
npm install formik
  1. 在你的React Native项目中,创建一个表单组件,并在该组件中引入formik库。可以使用以下代码示例:
代码语言:txt
复制
import React from 'react';
import { View, TextInput, Button } from 'react-native';
import { Formik } from 'formik';

const MyForm = () => {
  return (
    <Formik
      initialValues={{ name: '', email: '' }}
      onSubmit={values => console.log(values)}
    >
      {({ handleChange, handleSubmit, values }) => (
        <View>
          <TextInput
            onChangeText={handleChange('name')}
            value={values.name}
            placeholder="Name"
          />
          <TextInput
            onChangeText={handleChange('email')}
            value={values.email}
            placeholder="Email"
          />
          <Button onPress={handleSubmit} title="Submit" />
        </View>
      )}
    </Formik>
  );
};

export default MyForm;

在上面的代码中,我们使用Formik组件来包裹表单的内容。initialValues属性用于设置表单的初始值,onSubmit属性用于处理表单提交时的逻辑。

  1. 在导航到其他屏幕之前,你需要将表单的值保存起来。你可以使用React Navigation库来进行屏幕导航。在导航之前,可以将表单的值存储在一个状态管理器中,例如Redux或Context API。
代码语言:txt
复制
import React, { useState } from 'react';
import { Button } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import MyForm from './MyForm';

const Stack = createStackNavigator();

const App = () => {
  const [formValues, setFormValues] = useState({});

  const handleFormSubmit = values => {
    setFormValues(values);
    // 处理表单提交逻辑
  };

  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen
          name="Home"
          component={MyForm}
          initialParams={{ handleFormSubmit }}
        />
        {/* 其他屏幕 */}
      </Stack.Navigator>
    </NavigationContainer>
  );
};

export default App;

在上面的代码中,我们使用useState来创建一个名为formValues的状态,用于存储表单的值。在handleFormSubmit函数中,我们将表单的值存储在formValues状态中。

  1. 在导航到其他屏幕时,可以通过导航参数将handleFormSubmit函数传递给其他屏幕。在其他屏幕中,可以使用该函数来更新表单的值。
代码语言:txt
复制
import React from 'react';
import { View, Text, Button } from 'react-native';

const OtherScreen = ({ route }) => {
  const { handleFormSubmit } = route.params;

  const updateFormValues = () => {
    const newValues = { name: 'John', email: 'john@example.com' };
    handleFormSubmit(newValues);
  };

  return (
    <View>
      <Text>Other Screen</Text>
      <Button onPress={updateFormValues} title="Update Form Values" />
    </View>
  );
};

export default OtherScreen;

在上面的代码中,我们通过route.params获取到传递过来的handleFormSubmit函数,并在updateFormValues函数中使用它来更新表单的值。

这样,在导航到其他屏幕后,你可以通过调用handleFormSubmit函数来更新表单的值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券