我正在尝试访问我在调用函数时使用的材料ui文本输入的值,但我还需要通过其他参数,
这是在其父类中调用该函数的代码。
<Input
value={this.props.appState.application.Person[0].Forename}
className={classes.input}
onChange={this.testHandleChange(0, 'Person')}
name="Forename"
inputProps={{
'aria-label': 'Description',
}}
/>
这是它在父母中调用的函数
testHandleChange = event => (userIndex, object) => {
console.log(`userIndex: ${userIndex}`);
console.log(`object: ${object}`);
console.log(`value: ${event.target.value}`);
};
它一直在说意外使用全球事件&#39;。在输入而不是功能我如何解决这个问题?
编辑:所以我稍微改变了一些东西并得到了一些更好的错误,我认为这会改变上面的代码。
这现在给我错误
无法读取属性&#39;值&#39;未定义的
答案 0 :(得分:3)
你在写:
event => (userIndex, object) =>
但这意味着你要返回一个带有(userIndex,object)参数并将其传递给onChange的函数。 但必须是:
(userIndex, object) => event =>
在这里,您将返回一个将事件作为参数的函数。这就是onChange所期望的。
答案 1 :(得分:0)
解决这个问题的更好方法是使用匿名函数捕获事件并将其作为arg传递:
onChange={(event) => { this.testHandleChange(event, 0, 'Person'); }}
然后在你的处理程序中:
testHandleChange = (event, userIndex, object) => { ... }