【发布时间】:2019-08-05 11:52:49
【问题描述】:
点击发送按钮后,如何在 Render() 方法中传递所有值?在这个 Render() 方法中,我返回了一些平面列表、视图、签名等。那么,是否可以通过单击按钮将所有这些值传递到另一个页面。
如果您的问题不清楚,请告诉我,以便我添加更多解释。
代码见下文(已编辑)。
感谢任何建议或帮助!
编辑:
renderTextandInputs = (obje) => {
var keyvalue_to_json = JSON.parse(obje.keyValues);
var foundTextFields = [];
for (let i = 0; i < keyvalue_to_json.length; i++) {
if (keyvalue_to_json[i].type === 'textfield') {
foundTextFields.push(<TextInput style={{ borderWidth: 1, flex: 1, alignItems: 'flex-start' }}>{keyvalue_to_json[i].placeholderText}</TextInput>)
}
}
return (
<View>
<ScrollView>
<ListItem
title={obje.name}
subtitle={obje.description}
/>
</ScrollView>
<View >
{foundTextFields}
</View>
</View>
)
}
render() {
const obj = this.props.navigation.state.params.item;
var propsArray = [];
const itemArray = Object.assign(obj)
propsArray.push(itemArray)
keyExtractor = (item, index) => {
return index.toString();
}
return (
<View>
<View>
<FlatList
key={this.keyExtractor}
data={propsArray}
renderItem={({ item }) => this.renderTextandInputs(item)}
/>
</View>
<View >
{this.state.signature ? (
<Image
resizeMode={"contain"}
source={{ uri: this.state.signature }}
/>
) : null}
</View>
<Modal isVisible={this.state.isModalVisible}
onBackdropPress={() => this.setState({ isModalVisible: false })}
>
<Signature
width="100"
onOK={this.handleSignature}
descriptionText="Sign"
clearText="Clear"
confirmText="Save"
webStyle={style}
/>
</Modal>
<View>
<Button title="SIGN" onPress={this._toggleModal} />
</View>
<View>
<Button title="Send" onPress={this._onSendDoc} />
</View>
</View>
);
}
_onSendDoc = (item) => {
this.props.navigation.navigate('Detail', { item: item })
}
}
【问题讨论】:
-
您提到的“发送”按钮在哪里?到目前为止,您尝试了哪些允许单击按钮将数据发送到下一页的方法?这应该很简单,只需将数据作为道具传递给下一个组件/页面
-
@TyroHunter 我还没试过。我知道我不能在 Render() 中有参数,所以我需要在按钮中使用哪些参数:onPress={() => this.onPressItem()}
标签: react-native button navigation render