javascript 为什么我退出页面时没有设置新值?

zour9fqk  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(94)

我把我在应用程序中遇到的问题简化如下:即使我在TextInput中输入一个新单词,当我返回页面时,它显示的是"initial",为什么它不写新值?
其实我这里想做的是,一按手机的后退键(hardwareBackPress),就把最后输入的文本发送到redux,但它总是发送初始值,这个问题怎么解决?

import { TextInput } from 'react-native'
import React, { useEffect, useState } from 'react'

export default function ChangeModel({ navigation }) {
    const [text, setText] = useState("initial")
  
    const onPressSave = () => {
        console.log(text)
    }

    useEffect(() => {
        return () => onPressSave()
    }, [])

    return (
        <TextInput
            value={text}
            onChangeText={setText}
            style={{ backgroundColor: "grey" }}
        />
    )
}
rt4zxlrg

rt4zxlrg1#

你没有设置任何会改变值的东西,尝试用新值设置状态:

setText(newValue)

如果你处理redux,你应该先导入action,然后再导入dispatch

nxagd54h

nxagd54h2#

要获取输入的数据,您必须编写一个按钮组件,如下所示

import { TextInput, Text, View, Button } from 'react-native';
import React, { useState, useEffect } from 'react';

export default function ChangeModel({ navigation }) {
const [text, setText] = useState('initial');

const onPressSave = () => {
 console.log(text);
};

useEffect(() => {
 return () => onPressSave();
}, []);

return (
 <View>
   <TextInput value={text} onChangeText={setText} />
   <Button title="Press me" onPress={onPressSave} />
 </View>
 );
 }

当你点击手机背面的按钮时,状态为默认

相关问题