gpt4 book ai didi

javascript - 如何使用 React.js 编辑元素的文本?

转载 作者:行者123 更新时间:2023-12-03 13:40:28 25 4
gpt4 key购买 nike

我想在按下编辑按钮时编辑我的p元素的文本。

当我点击编辑按钮时,我会显示一个textarea并获取带有警报的键入文本,但无法将该文本放入我的p元素。

使用 React.js 实现这一点的简单方法是什么?

JSFIDDLE

当我按下编辑按钮时,编辑状态发生变化并显示文本区域。下面的代码。

renderNormal: function() {
return (
<div>
<p>Edit me</p>
<button onClick={this.edit}>Edit</button>
</div>
)
},
renderForm: function() {
return (
<div>
<textarea ref="newText" defaultValue="Edit me"></textarea>
<button onClick={this.save}>Save</button>
</div>
)
},
render: function() {
if (this.state.editing) {
return this.renderForm()
} else {
return this.renderNormal()
}
}

最佳答案

您需要存储和检索状态变量中的文本。修改状态会导致重新渲染,然后显示更新的文本。从您的 JSFiddle 复制...请注意我在您的状态中添加了“文本”属性

var MyCom = React.createClass({
getInitialState: function() {
return {
editing: false,
// ** Initialize "text" property with empty string here
text: ''
}
},
edit: function() {
this.setState({
editing: true
})
},
save: function() {
var val = this.refs.newText.value;
alert(val)
this.setState({
// ** Update "text" property with new value (this fires render() again)
text: val,
editing: false
})
},
renderNormal: function() {
// ** Render "state.text" inside your <p> whether its empty or not...
return (
<div>
<p>{this.state.text}</p>
<button onClick={this.edit}>Edit</button>
</div>
)
},
renderForm: function() {
return (
<div>
<textarea ref="newText" defaultValue="Edit me"></textarea>
<button onClick={this.save}>Save</button>
</div>
)
},
render: function() {
if (this.state.editing) {
return this.renderForm()
} else {
return this.renderNormal()
}
}
})

ReactDOM.render(
<div>
<MyCom/>
<MyCom/>
</div>,
document.querySelector(".box")
)

关于javascript - 如何使用 React.js 编辑元素的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40534702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com