javascript - 将原生开放模态 react 为模态

标签 javascript reactjs react-native

  • 如何从 React Native 中的模态框打开模态。 例如:我在模态中有一个表单,在表单中有一个颜色选择器字段,那么如何将颜色选择器打开到另一个模态。

名称:XYZ 年龄:21 颜色:A(这是颜色选择器。当我单击文本时,在模式中打开颜色选择器)

最佳答案

将外部模态内的嵌套颜色模态渲染为内容,嵌套模态的可见性将取决于文本上的单击/按下。考虑下面的示例代码,出于演示目的,我使用了 react-native-color-picker库,您也可以使用任何其他库。

示例

初始化状态变量,outerModalVisible控制外部模态的可见性,nestedModalVisible控制嵌套模态的可见性。在示例代码中,outerModalVisible 值保持为 true,但您可以根据您的要求更改它。

state={
  outerModalVisible: true,
  nestedModalVisible: false,
  selected_color: '#fff'
}

在render方法中,定义外部模型和嵌套模态

<View>
    <Modal visible={this.state.outerModalVisible} >
      <View style={styles.container}>
        <Text>Name: XYZ</Text>
        <Text>Age: 21</Text>
        <TouchableOpacity onPress={() =>{
          this.setState({
            nestedModalVisible: true
          });
        }}>
          <Text>Color picker: {this.state.selected_color}</Text>
        </TouchableOpacity>
        <Modal
          visible={this.state.nestedModalVisible}
        >
          <View style={styles.container}>
          <ColorPicker
            onColorSelected={color => {
              this.setState({
                selected_color: color,
                nestedModalVisible: false
              });
            }}
            style={{flex: 1}}
          />
            <Button title="click to close" onPress={() =>{
              this.setState({
                nestedModalVisible: false
              });
            }} />
          </View>
        </Modal>
      </View>
    </Modal>
  </View>

您可以在单独的组件中定义嵌套模型的内容,我只是保持简单并在单个组件中定义它。

希望这会有所帮助!

关于javascript - 将原生开放模态 react 为模态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50346360/

相关文章:

javascript - 如何从一个或多个选项卡重置一个变量的值?

javascript - 使用 PHP 和 JavaScript 显示旋转图像

javascript - Ecma 脚本 6 : New operator in tail position

reactjs - react Redux 错误 : default parameters should be last default-param-last

javascript - graphQL 查询中的变量

javascript - 等到所有回调都被调用

javascript - React Native 渲染 FlatList 有条件

javascript - 在同一按钮上隐藏和显示 Angular 2

javascript - React Starter Kit 中的 Ajax 调用

react-native - 防止系统键盘在 React Native 中按下 TextInput 时显示