react-native - React Native 如何在不使用 Redux 的情况下将值从组件传递到主要活动?
问题描述
我正在制作用于销售的上传产品。我已经制作了一个组件来接收用户输入的数字(单位或价格),并且在主页中需要计算总价格:单位*价格..但是,我被困在这里......我没有'不知道如何从组件中获取价值..
我附上了我的代码。你能看看吗?太感谢了 !!
放置号码的组件
import React from 'react';
import { StyleSheet, View } from 'react-native'
import { TextInput } from 'react-native-gesture-handler';
import colors from '../config/colors';
function TryInputNum({children}) {
return (
<View style={styles.container}>
<TextInput placeholder="Enter a number">{children}</TextInput>
</View>
);
}
const styles = StyleSheet.create({
container :{
width : 150,
height : 200,
backgroundColor : colors.white,
}
})
export default TryInputNum;
主页
import React from 'react';
import { StyleSheet, View,Text } from 'react-native'
import TryInputNum from '../components/TryInputNum';
import colors from '../config/colors';
function TryCountScreen({children}) {
return (
<View style={styles.container}>
<Text>{children}</Text>
<TryInputNum/>
</View>
);
}
const styles = StyleSheet.create({
container : {
flex :1,
backgroundColor : colors.primary,
justifyContent : 'center',
alignItems : 'center',
}
})
export default TryCountScreen;
解决方案
您可以从子级传递 onChangeText 函数,并将其作为主组件内的道具访问。在 onChangeText 中,您可以从 TextInput 组件返回文本值并在主组件内处理它。它会像这样
function TryInputNum({children,onChangeText}) {
return (
<View style={styles.container}>
<TextInput onChangeText={value => onChangeText(value)} placeholder="Enter a
number">{children}</TextInput>
</View>
);
}
然后像这样处理来自主屏幕的值
import React from 'react';
import { StyleSheet, View,Text } from 'react-native'
import TryInputNum from '../components/TryInputNum';
import colors from '../config/colors';
function TryCountScreen({children}) {
return (
<View style={styles.container}>
<Text>{children}</Text>
//Here you have access to that text value thats written inside the
// TextInput component
<TryInputNum onChangeText={text => console.log(text)}/>
</View>
);
}
const styles = StyleSheet.create({
container : {
flex :1,
backgroundColor : colors.primary,
justifyContent : 'center',
alignItems : 'center',
}
})
export default TryCountScreen;
推荐阅读
- firebase - Firestore 通过 Firebase Functions 与 Firestore SDK 的性能差异
- cmake - CMake 不支持工具集规范
- bash - 对于 Linux Bash,是否有等效于 .bashrc 的 Windows 10 PowerShell?
- android - 为什么倒数计时器突然执行得很快?
- c - 多向管道问题(父亲<->儿子)
- c# - .Net Core 2.1 的 Razor 页面中的分页问题
- python - Python中快速嵌套列表的意外更新结果
- reactjs - 当我必须遍历和查找/删除我的状态中的项目时如何安全地更新我的状态
- ios - 添加子视图时内存泄漏
- json - 在 Bash 中有效地将 JSON 文件重写为 CSV