javascript - 我可以在 Svelte 中使用 React 组件吗?

标签 javascript reactjs svelte

我对 Svelte 很陌生,但在任何地方都找不到我的问题的答案。

我正在尝试在 Svelte 中使用这个 React 组件: https://developer.microsoft.com/en-us/fabric#/controls/web/stack (我猜这可能是任何 React 组件,都会出现同样的问题)

但是,每当我添加它时,整个应用程序就会变成空白。

是否可以导入 react 组件,如果可以,如何导入?

我尝试过导入它 - 这只会破坏应用程序。

<script>
    import { Stack, IStackProps } from 'office-ui-fabric-react/lib/Stack';
    let name = 'world';

</script>

<h1>Hello {name}!</h1>
<input type="text" bind:value={name}/>

<Stack horizontal tokens={{ childrenGap: 50 }}  > 
<div>test</div>
</Stack>

最佳答案

Artur Mustafin 在他的文章 React.Component wrapper for Svelte 中回答了这个问题.

<script>
  import { onMount } from "svelte";
  import React from "react";
  import ReactDOM from "react-dom";
  const e = React.createElement;
  class LikeButton extends React.Component {
    constructor(props) {
      super(props);
      this.state = { liked: false };
    }
    render() {
      if (this.state.liked) {
        return "You liked this.";
      }
      return e("button", { onClick: () => this.setState({ liked: true }) }, "Like");
    }
  }
  let container;
  onMount(function() {
    ReactDOM.render(e(LikeButton), container);
  });
</script>

<div bind:this={container}/>

关于javascript - 我可以在 Svelte 中使用 React 组件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56313219/

相关文章:

javascript - 这是什么效果

javascript - 在 iOS8 中使用 .focus() 将在触摸后显示虚拟键盘和滚动页面

javascript - Accordion 防止点击链接

html - 使用 React 组件状态更改 currentTime

svelte - 如何将响应式 Prop 从 SvelteKit __layout 文件传递​​到托管在其插槽之一中的页面?

javascript - 在选项卡式内容的不透明度属性上使用 CSS3 过渡不起作用

javascript - 父组件中 div id 的滚动位置

javascript - React Router V4 - 在组件之间而不是整个页面之间路由

svelte - 同时运行 2 个 Svelte 项目

svelte - 在 Svelte 中使用 postcss-normalize