菜鸟教程小白 发表于 2022-12-13 12:12:17

javascript - React Native 在另一个文本组件中附加文本组件


                                            <p><p>我有一个文本组件</p>

<pre><code>&lt;Text ref=&#34;text&#34; style{...}&gt;{this.state.te}&lt;/Text&gt;
</code></pre>

<p>我想插入和附加其他 <code><Text></Text></code></p>

<p>所以当事件在按钮上触发时,我希望它插入一个新的 <code><Text></Text></code> 看起来像这样</p>

<pre><code>&lt;Text ref=&#34;text&#34; style{...}&gt;
   &lt;Text ref=&#34;text&#34; style{...}&gt;first&lt;/Text&gt;
   &lt;Text ref=&#34;text&#34; style{...}&gt;second&lt;/Text&gt;
   &lt;Text ref=&#34;text&#34; style{...}&gt;third&lt;/Text&gt;
&lt;/Text&gt;
</code></pre>

<p>这就是我的事件的样子</p>

<pre><code>insertText(){
this.setState({te: this.state.te + &lt;Text style={...}&gt;{this.refs.newText.props.value}&lt;/Text&gt;})
</code></pre>

<p>}</p>

<p>当我这样做时,它呈现的是文本组件内的 <code>""</code></p>

<p>如果我使用</p>

<pre><code> this.setState({te: &lt;Text style={...}&gt;{this.refs.newText.props.value}&lt;/Text&gt;})
</code></pre>

<p>它会使用单个 <code><Text></Text></code> 元素很好地呈现文本。</p>

<p>任何帮助将不胜感激。谢谢。</p>

<p>编辑:</p>

<p>this.state.te 包含 <code>te: <Text></Text></code></p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,看看我下面的内容。我基本上创建了一个文本值数组,它们位于两个 <code><Text></code> 字段之间,当调用 insertText 函数时,它将一个新的文本元素推送到数组中,然后重置状态<code>te</code> 属性的数组:</p>

<pre><code>getInitialState: function() {
      return {
         te: [&lt;Text&gt;Yo&lt;/Text&gt;],
         index:1
      }
},

insertText: function() {
    this.state.te.push(
      &lt;Text&gt;Text number {this.state.index}&lt;/Text&gt;
    )
    this.setState({
      index: this.state.index + 1,
      te: this.state.te
    })
},

render: function() {

    var MyText = function(t) {
      return(
      &lt;Text&gt;
          {t}
      &lt;/Text&gt;
      )         
    }

    return (
      &lt;View style={styles.container}&gt;
            {MyText(this.state.te)}
      &lt;TouchableHighlight onPress={ () =&gt; this.insertText() } style={{ marginTop:20, height:60, flexDirection: &#39;row&#39;, backgroundColor: &#39;#ededed&#39;, justifyContent: &#39;center&#39;, alignItems: &#39;center&#39; }}&gt;
            &lt;Text style={{ fontSize: 22 }}&gt;Add Text&lt;/Text&gt;
      &lt;/TouchableHighlight&gt;
      &lt;/View&gt;
    );
</code></pre>

<p>我已经建立了完整的工作项目<a href="https://rnplay.org/apps/Itk6RQ" rel="noreferrer noopener nofollow">here</a> .完整的代码也贴在下面。</p>

<p> <a href="https://rnplay.org/apps/Itk6RQ" rel="noreferrer noopener nofollow">https://rnplay.org/apps/Itk6RQ</a> </p>

<pre><code>&#39;use strict&#39;;

var React = require(&#39;react-native&#39;);
var {
AppRegistry,
StyleSheet,
Text,
View,
TouchableHighlight
} = React;

var SampleApp = React.createClass({

getInitialState: function() {
      return {
       te: [&lt;Text&gt;Yo&lt;/Text&gt;],
         index:1
    }
},

insertText: function() {
    this.state.te.push(
      &lt;Text&gt;Text number {this.state.index}&lt;/Text&gt;
    )
    this.setState({
      index: this.state.index + 1,
      te: this.state.te
    })
},

render: function() {

    var MyText = function(t) {
      return(
      &lt;Text&gt;
          {t}
      &lt;/Text&gt;
      )         
    }

    return (
      &lt;View style={styles.container}&gt;
            {MyText(this.state.te)}
      &lt;TouchableHighlight onPress={ () =&gt; this.insertText() } style={{ marginTop:20, height:60, flexDirection: &#39;row&#39;, backgroundColor: &#39;#ededed&#39;, justifyContent: &#39;center&#39;, alignItems: &#39;center&#39; }}&gt;
            &lt;Text style={{ fontSize: 22 }}&gt;Add Text&lt;/Text&gt;
      &lt;/TouchableHighlight&gt;
      &lt;/View&gt;
    );
}
});

var styles = StyleSheet.create({
container: {
    flex: 1,
    marginTop: 60
}
});

AppRegistry.registerComponent(&#39;SampleApp&#39;, () =&gt; SampleApp);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - React Native 在另一个文本组件中附加文本组件,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/34091257/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/34091257/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - React Native 在另一个文本组件中附加文本组件