【发布时间】:2018-04-27 13:32:27
【问题描述】:
我正在渲染一个输入列表,我想将每个输入的值绑定到链接的 href。我目前的尝试呈现https://twitter.com/intent/tweet?text=undefined:
class App extends React.Component {
tweets = [
{ id: 1, link: 'example.com' },
{ id: 2, link: 'example2.com' }
];
render() {
return (
<div>
{this.tweets.map(tweet =>
<div key={tweet.id}>
<input type="text" placeholder="text" onChange={e => tweet.text = e.target.value} />
<a href={`https://twitter.com/intent/tweet?text=${tweet.text}`}>Tweet</a>
</div>
)}
</div>
);
}
}
这可能需要涉及setState,但我不知道在呈现列表时如何实现这一点。我试图对此进行一些研究,但没有发现任何帮助。
JSFiddle:https://jsfiddle.net/nunoarruda/u5c21wj9/3/
有什么想法吗?
【问题讨论】:
-
您需要将输入中的文本保存在状态中(使用 setState),而不是在 tweets 数组中。然后你可以用类似 {this.state.tweetsText[tweet.id]}
标签: javascript reactjs ecmascript-6 setstate array.prototype.map