我在我的应用中有2个反应本机组件,一个是一个具有"完成"按钮的工具栏,在用户完成后按填充表单时按下。
另一种是我需要获取数据的形式本身。
当用户单击"完成"时,我将带有参数的发布请求,但找不到获取数据的整洁方法。
最佳实践是什么?
我的工具栏:
<TopToolbar text='Upload new item'
navigator={this.props.navigator} state={this.state} donePage={'true'}/>
在工具栏组件中我有完成按钮:
<TouchableHighlight style={styles.done} onPress={() =>{this.state.text=this.props.state.data.price}} underlayColor='#4b50f8'>
<Image source={require('./Images/Path 264.png')}/>
</TouchableHighlight>
和文本输入之一是:
<TextInput placeholder='Price*' style={styles.text} onChangeText={(text) => { this.state.data.price = text }}></TextInput>
使用state
。您需要将视图绑定到模型=>(状态)。请添加您的代码以获取更好的指南。
每次您按下每次使用onChangeText
示例:
class UselessTextInput extends Component {
constructor(props) {
super(props);
this.state = { text: 'Useless Placeholder' };
}
render() {
return (
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(text) => this.setState({text})}
value={this.state.text}
/>
);
}
}
按下Done
按钮时。TextInput
值将存储在this.state.text
有关更多信息:https://facebook.github.io/react-native/docs/textinput.html
我认为您的主要问题是您需要在React文档中阅读有关状态的更多信息
https://facebook.github.io/react-native/docs/state.html
当您需要设置状态时。您应该使用setState
而不是this.state.data.price = text
。状态是一个带有多个键的对象y您的需求修改data
内部的一个内部密钥您需要修改所有data
键并替换它。
示例:
在您的构造函数中,声明
this.state = { data: {price: 10, name: xxxx} };
如果需要修改数据,您应该做类似的事情。
var dataM = this.state.data;
dataM.price = 200
this.setState({ data: dataM});