使用vanilla mdl(<script src="material.js"
&gt;)或使用react-mdl
时,如果我将mdl-js-ripple-effect
mdl类(或带有react-mdl
的ripple属性)添加到按钮,button元素的event.target.value
变为未定义(事件处理程序正在修改状态)。没有涟漪效应,它可以正常工作。我使用涟漪效应找不到 不 以外的解决方案;但这使按钮非常无聊。使用mdl的反应似乎有问题,但我认为有人可能会知道更多...(我使用create-react-app
)
点击处理程序:
handleButtonClick(event){
event.preventDefault();
this.setState({input: this.state.input + event.target.value});
}
&#34; Key&#34;使用react-mdl
:
function Key (props) {
return(
<Button raised colored ripple
value={props.value}
onClick={props.handleButtonClick}>
{props.value}
</Button>
);
}
如果我使用带有button
元素的vanilla mdl,则会出现同样的问题:
function Key (props) {
return(
<button className="mdl-button mdl-js-button mdl-button--raised
mdl-js-ripple-effect mdl-button--colored"
value={props.value}
onClick={props.handleButtonClick}>
{props.value}
</button>
);
}
如果我 删除 涟漪,则单击按钮时event.target.value
应为(value={props.value}
)。但是 带有 的涟漪,它是未定义的。
任何人都经历过这种情况,或者知道为什么会这样,或者解决这个问题?
答案 0 :(得分:1)
mdl-js-ripple-effect
类用样式化的button
元素替换span
元素,删除它的value
属性。
您可以通过value
访问this.props.value
属性。
这是jsFiddle,显示event.target.value
与this.props.value
的值。