Task.js
export const Task = ({ addTask }) => {
const [focusItem, setFocusItem] = useState(null);
return (
<View style={styles.titleContainer}>
<Text style={styles.title}>What would you like to focus on?</Text>
<View style={styles.container}>
<TextInput
style={{ flex: 1 }}
maxLength={50}
value={focusItem}
onSubmitEditing={()=>({ nativeEvent: { text } }) => setFocusItem(text)}
/>
<RoundedButton
style={styles.addSubject}
size={50}
title="+"
onPress={()=>addTask(focusItem)}
/>
</View>
</View>
);
};App.js
import React, { useState } from 'react';
import { Text, View, StyleSheet } from 'react-native';
import Constants from 'expo-constants';
import {Task} from './src/features/task/Task'
export default function App() {
const [task, setTask] = useState(null);
return (
<View style={styles.container}>
{
task ?
(<Text></Text>):
(<Task addTask = {setTask}/>)
}
<Text>{task}</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#425670',
},
});我尝试通过设置Task的值来将数据从Task发送到App组件。但是onPress不起作用。在执行onSubmitEditing时,我可以看到文本已成功设置,但onPress什么也不做。请帮我解决这个问题。提前感谢
发布于 2021-09-18 04:40:59
您需要更改此设置
onSubmitEditing={()=>({ nativeEvent: { text } }) => setFocusItem(text)}至
onSubmitEditing={({ nativeEvent: { text } }) => setFocusItem(text)}您还可以参考I want to update the parent according to the change of the child to react native
https://stackoverflow.com/questions/69231043
复制相似问题