javascript - 我们如何在 React 中创建动态元素
问题描述
请问我如何在 ReactJs 中做到这一点。可以直接在反应中操纵dom,还是有一种操纵dom的反应方式。我在网上搜索过,仍然找不到正确的信息。谢谢
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var x = document.createElement("INPUT");
x.setAttribute("type", "text");
x.setAttribute("value", "Hello World!");
document.body.appendChild(x);
}
</script>
解决方案
class App extends React.Component{
constructor(props){
super(props);
this.state = {input: []}
this.addItem = this.addItem.bind(this)
}
addItem(){
const input = this.state.input;
const item = <input type="text" value="Hello World!" />
this.setState({input : input.concat(item)})
}
render(){
return(
<div>
{this.state.input}
<br/>
<button onClick={this.addItem}>Try it</button>
</div>
)
}
}
ReactDOM.render(<App />, document.getElementById("container"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="container"></div>
推荐阅读
- reactjs - 嵌套的 Redux Reducer 返回 null 主状态
- xamarin.forms - 如何在 Xamarin Forms 中输入之前放置一个图标
- pdf - 使用 mojolicious 生成 PDF
- swift - 在一个或两个表已经保存后,如何加快表之间的关系更新?
- reactjs - 将 async await 与 redux reducer 一起使用
- barcode - Zbar Code128 解码错误
- zapier - zapier 以编程方式设置捆绑包输入数据
- kubernetes - Pod 无法通过服务 IP 连接到自身(kubernetes v1.10)
- java - 由 java.lang.IllegalArgumentException 引起:MediaButtonReceiver 组件可能不为空
- r - R中的条件交叉表