繁体   English   中英

在 ReactJs 和 React Native 项目之间共享使用 Native-Base 制作的组件

[英]Sharing components made with Native-Base between ReactJs and React Native Projects

我正在尝试在 ReactJs 和 React Native 项目之间共享组件。 我已经成功地能够共享使用 React Native 的组件,但是使用 Native Base 的项目会出错。 我的设置是这样的:

我有一个包含该项目的 mono 存储库。 我在我的 web 项目中安装了 React Native Web 我在我的 React Native 代码库中创建了一个共享文件夹。 我从我的 web src 文件夹创建了一个符号链接到共享文件夹我更新了 babel configs 以编译共享文件夹中的项目

这是我尝试分享的组件示例。 没什么特别的;)

import {Center, Text} from 'native-base';

const Test = () => {
  return (
    <Center>
      <Text>hello world!</Text>
    </Center>
  );
};

export default Test;

我在 devtools 控制台中看到了这个:

未捕获的错误:无效的挂钩调用。 钩子只能在 function 组件的主体内部调用。 这可能由于以下原因之一而发生:

  1. 你可能有不匹配的 React 版本和渲染器(例如 React DOM)
  2. 您可能违反了 Hooks 规则
  3. 你可能在同一个应用程序中拥有多个 React 副本

<ForwardRef(Center)> 组件出现上述错误:

知道如何让具有本机基础的组件在 web 中工作。 我应该注意到它在没有符号链接的移动设备上运行良好。

在 web 和原生移动设备之间共享组件的唯一方法是使用exporeact-native-web 我使用 react-native-web,我对这项技术很满意。 写一次到处玩 (web, android & ios)

<input>和<textarea></textarea>未在 native-base 中对齐,React Native&lt;/div&gt;<div id="text_translate"><p> 我想使用原生基础将单行输入和多行输入放入表单中,但它们未正确对齐垂直线。 有什么我遗漏的或者不应该一起使用的吗? 谢谢你。</p><p> package.json 的一部分</p><pre> "expo": "~37.0.3", "native-base": "2.13.8", "react": "~16.9.0", "react-dom": "~16.9.0", "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",</pre><p> 我的代码</p><pre class="lang-js prettyprint-override"> &lt;Content padder&gt; &lt;Form&gt; &lt;Item regular floatingLabel&gt; &lt;Label style={{paddingTop: 2}}&gt;Label&lt;/Label&gt; &lt;Input onChangeText={url =&gt; setUrl(url)}/&gt; &lt;/Item&gt; &lt;Textarea rowSpan={5} onChangeText={content =&gt; setContent(content)} bordered placeholder="this is textarea" /&gt; &lt;/Form&gt; &lt;/Content&gt;</pre><p> <a href="https://i.stack.imgur.com/gSyge.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/gSyge.png" alt="模拟器截图"></a></p><p> ========已编辑</p><p>我找到了答案,只需将 floatingLabel 替换为常规。 但是,占位符仍未对齐。</p><pre class="lang-js prettyprint-override"> &lt;Item regular&gt; &lt;Label&gt;URL&lt;/Label&gt; &lt;Input onChangeText={url =&gt; setUrl(url)}/&gt; &lt;/Item&gt;</pre><p> <a href="https://i.stack.imgur.com/kWwZs.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kWwZs.png" alt="在此处输入图像描述"></a></p></div>

[英]<Input /> and <Textarea /> are not aligned in native-base, React Native

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 React-Native native-base 如何减少卡片项目之间的间距? <input>和<textarea></textarea>未在 native-base 中对齐,React Native&lt;/div&gt;<div id="text_translate"><p> 我想使用原生基础将单行输入和多行输入放入表单中,但它们未正确对齐垂直线。 有什么我遗漏的或者不应该一起使用的吗? 谢谢你。</p><p> package.json 的一部分</p><pre> "expo": "~37.0.3", "native-base": "2.13.8", "react": "~16.9.0", "react-dom": "~16.9.0", "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",</pre><p> 我的代码</p><pre class="lang-js prettyprint-override"> &lt;Content padder&gt; &lt;Form&gt; &lt;Item regular floatingLabel&gt; &lt;Label style={{paddingTop: 2}}&gt;Label&lt;/Label&gt; &lt;Input onChangeText={url =&gt; setUrl(url)}/&gt; &lt;/Item&gt; &lt;Textarea rowSpan={5} onChangeText={content =&gt; setContent(content)} bordered placeholder="this is textarea" /&gt; &lt;/Form&gt; &lt;/Content&gt;</pre><p> <a href="https://i.stack.imgur.com/gSyge.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/gSyge.png" alt="模拟器截图"></a></p><p> ========已编辑</p><p>我找到了答案,只需将 floatingLabel 替换为常规。 但是,占位符仍未对齐。</p><pre class="lang-js prettyprint-override"> &lt;Item regular&gt; &lt;Label&gt;URL&lt;/Label&gt; &lt;Input onChangeText={url =&gt; setUrl(url)}/&gt; &lt;/Item&gt;</pre><p> <a href="https://i.stack.imgur.com/kWwZs.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kWwZs.png" alt="在此处输入图像描述"></a></p></div> zIndex doot可在本机卡上运行-反应本机 如何在反应原生中更改基于原生的 Picker fontSize 和 fontFamily? Native-Base 3:菜单项的 Onpress React-native flatlist 在 isLoading 上的组件之间共享道具 反应原生:有没有办法只在原生库的手风琴的 3 选项卡中定位图标? 在本机基础输入上写入默认文本 React native - 安装native-base后要包含在版本控制中的文件? 标签内的React-Native Set响应式图标(本机基形式)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM