【问题标题】:Converting React-Native-Draggable-View from Class to Hooks将 React-Native-Draggable-View 从类转换为 Hooks
【发布时间】:2021-03-01 16:00:57
【问题描述】:

我正在尝试使用 React-Native-Draggable-View 编写一些代码,但我想要的示例是以“类”形式编写的,而我以“Hooks/Functional”形式编写所有内容。这是以类格式编写的代码的原始部分。当我尝试自己转换它时,我会产生一个错误。

import React, { useState, useEffect, Component }from "react";
import Drawer from 'react-native-draggable-view'
import CheckScreen from './CheckScreen'
import ListScreen from './ListScreen'

function RunningScreen({navigation}) {

...

return(

...


<Drawer
    initialDrawerSize={0.09}
    renderContainerView={() => { <View style = {{flex: 1, backgroundColor: 'red'}}/> }}
    renderDrawerView={() => { <View style = {{flex: 1, backgroundColor: 'red'}}/> }}
    renderInitDrawerView={() => {
      <View style = {{backgroundColor: '#fff', height: height*0.2}}>
        <StatusBar hidden = {true}/>
  <StatusBar hidden = {true}/>
                
    </View>
   )}
  />
    )
    }

...

export {RunningScreen}

【问题讨论】:

    标签: javascript react-native react-hooks expo navigation-drawer


    【解决方案1】:

    试试下面的代码

    import React from 'react';
    import {Dimensions, StatusBar, View} from 'react-native';
    import Drawer from 'react-native-draggable-view';
    
    const {height} = Dimensions.get('window');
    
    function RunningScreen({navigation}) {
      return (
        <Drawer
          initialDrawerSize={0.09}
          renderContainerView={() => (
            <View style={{flex: 1, backgroundColor: 'red'}} />
          )}
          renderDrawerView={() => (
            <View style={{flex: 1, backgroundColor: 'red'}} />
          )}
          renderInitDrawerView={() => (
            <View style={{backgroundColor: '#fff', height: height * 0.2}}>
              <StatusBar hidden={true} />
            </View>
          )}
        />
      );
    }
    
    export {RunningScreen};
    

    【讨论】:

    • 所以我之前确实尝试过。我收到一个错误:“元素类型无效:需要一个字符串(用于内置组件)或一个类/函数(用于复合组件)但得到:未定义.....检查'组件'的渲染方法
    • 还有其他建议吗?
    • @MK_Pierce 上面更新的代码对我有用。请确保您拥有CheckScreenListScreen 正确的路径和工作代码。
    • 当然!正确的路径意味着“CheckScreen 和 ListScreen 的路径”可以正确访问。只想确认一下。我相信你已经做到了,所以你可以忽略它:)
    • 我仍然遇到同样的错误...我不知道为什么。 “renderContainerView”是包含屏幕的文件,对吗?此外,任何说“渲染”的东西对我来说都是“阶级”。我是否可能需要为钩子重新格式化它?
    猜你喜欢
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2017-05-28
    • 1970-01-01
    • 2020-11-19
    • 2020-04-17
    • 2019-10-17
    相关资源
    最近更新 更多