假设我有一个简单的React原生应用程序,如下所示:

'use strict';

var React = require('react-native');
var {
  AppRegistry,
  Text,
  TouchableHighlight,
  View,
} = React;

var ReactProject = React.createClass({
  _onPressOut: function() {
    // What do we do here?
  },

  render() {
    return (
      <View>
        <Text>This text should be before</Text>
        <Text>This text should be after</Text>
        <TouchableHighlight onPressOut={this._onPressOut}>
          <Text>Tap Me</Text>
        </TouchableHighlight>
      </View>
    );
  }
});

AppRegistry.registerComponent('ReactProject', () => ReactProject);

按下TouchableHighlight时,如何在第一个和第二个Text个标签之间动态插入组件?

推荐答案

try 创建一个数组并将其附加到状态.然后可以将项目推送到数组中,并重置状态.

https://rnplay.org/apps/ymjNxQ

'use strict';

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

var index = 0

var SampleApp = React.createClass({

  getInitialState(){
    return { myArr: [] }
  },

  _onPressOut() {
    let temp = index ++
    this.state.myArr.push(temp)
    this.setState({
        myArr: this.state.myArr
    })
  },

  render() {

    let Arr = this.state.myArr.map((a, i) => {
      return <View key={i} style={{ height:40, borderBottomWidth:2, borderBottomColor: '#ededed' }}><Text>{ a }</Text></View>                            
    })    
    return (
      <View style={styles.container}>
        <Text>First</Text>
        { Arr }
        <Text>Second</Text>
        <TouchableHighlight style={ styles.button } onPress={ () => this._onPressOut() }>
            <Text>Push</Text>
        </TouchableHighlight>
      </View>
    );
  }
});

var styles = StyleSheet.create({
  container: {
    flex: 1,
    marginTop:60
  },
  button: {
    height:60,
    backgroundColor: '#ededed',
    marginTop:10,
    justifyContent: 'center',
    alignItems: 'center'
  }
});

AppRegistry.registerComponent('SampleApp', () => SampleApp);

我已经建立了一个工作示例here.

React-native相关问答推荐

@testing-library/react-native -> 渲染 -> TypeError:无法读取未定义的属性(读取存在)

如何在 react-native 中刷新 Flatlist 数据?

无法在 M1 zsh 上运行 adb segmentation fault adb

不能总是在 Chrome 中设置 React Native 断点

我如何限制 FlatList 中的元素并增加负载?

React Navigation v5 中的初始路由参数?

react平面列表渲染项

在 create-react-native-app 元素中突然看到错误Plugin/Preset files are not allowed to export objects, only functions

No component found for view with name "ARTShape"

如何在 React-Native 中创建检测自动位置的map

如何获取 React Native 应用程序的崩溃日志(log)?

警告:API 'variant.getMergeAssets()' 已过时 / Android Studio 3.3

React-Native 按钮居中对齐

ReactNative FlatList 一次渲染所有元素?

你如何从 React Native 的 EventEmitter 实例中移除一个监听器?

如何在不使用 JSX 的情况下在 React Native 中制作组件?

在 React Native 中,如何使用浅渲染测试我的组件?

如何在react-native中显示toast消息

React Native:如何动态更改

如何升级 react-native gradle 版本