我正在尝试通过handleChange更改模态内部的输入值,并将其放在this.state.value中。不幸的是,我在调试handleChange函数时得到的是:value = undefined(在event.target中没有“value”)。
export default class AddPlanningView extends Component {
constructor(props) {
super(props);
this.state = {
items: [],
value: "",
amount: 0,
unit: ""};
this.handleChange = this.handleChange.bind(this);
}
handleChange = (event) => {
this.setState({
value: event.target.value,
amount: event.target.amount,
unit: event.target.unit
});
}
openModal() {
this.refs.modal.open()
}
closeModal() {
this.refs.modal.close()
}
addItem() {
//Validate Item
this.closeModal();
}
render() {
return (
<Container>
<Header>
...
</Header>
<Content>
...
<Modal
backdrop={false}
ref={"modal"}
swipeToClose={true}>
<View style={styles.modalView}>
<ListItem>
<InputGroup>
<Icon name="ios-clipboard" style={{ color: '#0A69FE' }}/>
<Input type="text" inlineLabel label="Item" placeholder="Item" value={this.state.value} onChange={this.handleChange}/>
</InputGroup>
</ListItem>
...
<Button block onPress={this.addItem.bind(this)}>
<Icon name='save' theme={IconTheme}/>
</Button>
</View>
</Modal>
</Content>
<Footer>
<FooterTab>
<Button transparent onPress={this.openModal.bind(this)}>
<Icon name='md-add' color="#000"/>
New Item
</Button>
</FooterTab>
</Footer>
</Container>
);
}
有谁知道为什么?
由于
戴夫
答案 0 :(得分:0)
根据react-native-docs,在react-native中,对于组件中的句柄更改,应使用“ onChangeText”而不是“ onChange”:
$command = new MongoDB\Driver\Command([
'aggregate' => 'collection',
'pipeline' => [
['$group' => ['_id' => '$y', 'sum' => ['$sum' => '$x']]],
],
'cursor' => new stdClass,
]);
$cursor = $manager->executeCommand('db', $command);
现在该组件的事件处理程序功能中,让我们看一下这个简单的示例:
<customComponent onChangeText={this.handleChange}/>
答案 1 :(得分:-1)
您将handleChange
绑定到this
两次。
首先在构造函数this.handleChange = this.handleChange.bind(this);
中。
然后将handleChange
声明为箭头函数,该函数还将函数绑定到this
。
handleChange = (event) => {
// stuff
}
解决方案是
handleChange
没有胖箭头语法我建议你阅读处理事件(https://facebook.github.io/react/docs/handling-events.html)作为作业:)