我无法在文字区域输入任何文字。 我无法修改我的默认文字。
我如何解决我的问题?
class SomeClass extends Component{
constructor(props){
super(props)
this.state = {data:[]}
}
handleChange(e, media_id){
var newState = $.each(this.props.data, function() {
if (this.media_id == media_id) {
this.text = e.target.value }
});
this.setState({data:newState})
};
render(){
return(
<div className="col s9 m9 cards-container">
{this.props.data.map(item =>
<div className="input-field">
<textarea
placeholder="Описание с тегами" ref="tags"
className="materialize-textarea" value={ item.text }
onChange={this.handleChange.bind(this, item.media_id)}
/>
</div>)})}
}
答案 0 :(得分:1)
将参数的顺序反转为handleChange(media_id, e)
:
handleChange
由于this.handleChange.bind(this, item.media_id)
的约束方式,参数将按相反的顺序排列:
item.media_id
返回部分应用的函数,其中Event
是其第一个参数。 <{1}}发生时传递的最终onChange
对象将是第二个参数。
答案 1 :(得分:0)
我发现你正在handleChange
中使用 es6 标准:
<textarea onChange={...} ...
你必须用
替换onChange={(e) => this.handleChange(e, item.media.id)}
这就是全部