在ReactJS中渲染数据

Render data in ReactJS

本文关键字:数据 ReactJS      更新时间:2023-09-26

我正在尝试学习ReactJS。在这个HelloWorld脚本

<!DOCTYPE html>
<html>
<head>
    <title>React JS Hello World</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" href="style.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<div id="content"></div>
<script type="text/jsx">
    var data=[{name: "nthhtn", text: "Sample text"}];
    var DataBlock = React.createClass({
        render: function() {
            var entry=this.props.data.map(function (entry){
                return (
                        <h3 name={entry.name}>
                        {entry.text}
                        </h3>
                );
            });
            return (
                    <div className="data" data={this.props.data}>
                            <h1>Sample data block</h1>
                    {entry}
                    </div>
            );
        }
    });
    React.render(
            <DataBlock data={data}/>,
            document.getElementById('content')
    );
</script>

</body>
</html>

我不知道为什么当我在浏览器中运行脚本时,data中的name字段不显示,只有text字段

您将数据传递给getInitialState()检查此fiddle https://jsfiddle.net/bs65w2hs/

var data=[{name: "nthhtn", text: "Sample text"}];
var DataBlock  = React.createClass({
    getInitialState: function getInitialState() {
        return {
            reactdata: data[0]  
        };
    },
    render: function() {
        var entrydata = this.state
        return <div>
                 <ul>
                   <li>name: {entrydata.reactdata.name}</li> 
                   <li>text: {entrydata.reactdata.text}</li>
                </ul>
               </div>
    }
 });
 React.render(<DataBlock />, document.getElementById('container'));

这是因为你在使用相同的变量名"entry"

  render: function() {
            var entryBlock=this.props.data.map(function (entry){
                return (
                        <h3 name={entry.name}>
                        {entry.text}
                        </h3>
                );
            });
            return (
                    <div className="data" data={this.props.data}>
                            <h1>Sample data block</h1>
                    {entryBlock}
                    </div>
            );
        }
例如,

将条目更改为entryBlock(参见上面的代码)。如果不是,检查entry.text.

中是否有内容

希望能有所帮助。