首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将从JSON读取的多段文本呈现为React组件的最佳方法

将从JSON读取的多段文本呈现为React组件的最佳方法
EN

Stack Overflow用户
提问于 2016-06-13 06:41:00
回答 1查看 3K关注 0票数 2

我不知道最好的办法是什么。

给定具有硬编码文本的React组件:

代码语言:javascript
复制
const TestTypes = Component({
    store: Store('/companies'),
    render(){
        var company = this.store.value()[this.props.companyId];

        return (
            <div id='ft-test-types className="all-100"'>
                <p className="section-heading bold padding-top-20 font-22">Types of Tests</p>
                <div className="all-100 padding-left-30 align-left">
                    <div className="all-100 align-left">
                        <p className="bold blue margin-2">{company.interview.testTypes.questions[0].question}</p>

                        <p className="italic padding-left-30 padding-top-20">
                            bunch of text for this paragraph...
                        </p>  
                        <p className="italic padding-left-30">
                            More text in this paragraph
                        </p>

                    </div>
                </div>
            </div>
        )
    }
})

所以现在你可以看到我正在通过{company.interview.testTypes.questions[0].questionSubDescription}从一个json文件中读取这个问题

现在,我想将答案,即它下面的两个分页图移到json中,并且我希望保持段落从json中的灵敏性。这意味着我希望能够将那些带有内容的p标记移动到json“答案”字段中,并且当react呈现时,它会像上面所做的那样呈现。

内容周围的标签。

这里是types.json的一部分

代码语言:javascript
复制
[{
    "testTypes": {
        "questions": [{
            "question": "Can you explain the different types and layers (scopes & boundaries) of tests",
            "answer": ""
        }]
    }
}]

我想把这些内容放到答案字段中。换句话说,我想说的是:

代码语言:javascript
复制
<p className="italic padding-left-30 padding-top-20">
    bunch of text for this paragraph...
</p>  
<p className="italic padding-left-30">
    More text in this paragraph
</p>

进入我的json对象中的"answer"字段。

然后,我将在React组件中替换它,并从json文件中读取答案:

代码语言:javascript
复制
const TestTypes = Component({
    store: Store('/companies'),
    render(){
        var company = this.store.value()[this.props.companyId];

        return (
            <div id='ft-test-types className="all-100"'>
                <p className="section-heading bold padding-top-20 font-22">Types of Tests</p>
                <div className="all-100 padding-left-30 align-left">
                    <div className="all-100 align-left">
                        <p className="bold blue margin-2">
                            {company.interview.testTypes.questions[0].question}
                        </p>
                        {company.interview.testTypes.questions[0].answer}
                    </div>
                </div>
            </div>
        )
    }
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-13 07:32:38

您可以将文本放入数组中。

代码语言:javascript
复制
"answer": [
  'bunch of text for this paragraph...',
  'More text in this paragraph'
]

然后在组件中使用它。

代码语言:javascript
复制
const TestTypes = Component({
  store: Store('/companies'),
  render(){
    var company = this.store.value()[this.props.companyId];
    var answer = company.interview.testTypes.questions[0].answer.map(function (text, index) {
      const paddingTopClass = index === 0 ? 'padding-top-20' : '';

      return <p
        key={ index }
        className={ `italic padding-left-30 ${ paddingTopClass }` }
      >
        { text }
      </p>
    });

    return <div id='ft-test-types className="all-100"'>
      <p className="section-heading bold padding-top-20 font-22">Types of Tests</p>
      <div className="all-100 padding-left-30 align-left">
        <div className="all-100 align-left">
          <p className="bold blue margin-2">
            {company.interview.testTypes.questions[0].question}
          </p>

          { answer }
        </div>
      </div>
    </div>;
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37783240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档