小编Tha*_*ara的帖子

makeEmptyFunction在fbjs中有什么用途?

我正在查看React源代码并偶然发现了一个要求var emptyFunction = require('fbjs/lib/emptyFunction');.

我看了看这个函数,并对它的作用感到困惑.

这是功能

function makeEmptyFunction<T>(arg: T): (...args: Array<any>) => T {
  return function() {
    return arg;
  };
}

const emptyFunction: (...args: Array<any>) => void = function() {};
Run Code Online (Sandbox Code Playgroud)

在评论中,他们给出了以下解释,我对此感到困惑:

此功能接受并丢弃输入; 它没有副作用.这对于可覆盖的函数端点来说非常有用,它总是需要可调用的,因为JS缺少一个null调用的成语ala Cocoa

我从来没有遇到过空调成语,并希望有人可以澄清这意味着什么,并用较少的技术语言解释这个功能的目的.

希望这个问题不会被忽视,因为它与代码不完全相关.也许它属于其他地方,如果是这样我很抱歉.

javascript fbjs reactjs

7
推荐指数
1
解决办法
194
查看次数

React Router v4 - 错误:React.Children.only预计会收到一个React元素子元素

我在一个非常简单的应用程序中使用react router v4.我试图按照文档,但我的应用程序尝试启动时有一个奇怪的错误.

错误说: error: React.Children.only expected to receive a single React element child

奇怪的是我的ReactDOM.render函数中只有一个组件.

这是我的代码的一些片段:

index.js:

ReactDOM.render(
  <App />,
  document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)

app.js(我隐藏了所有明显的组件导入):

import { BrowserRouter as Router, Route } from 'react-router-dom'

class App extends Component {
  render() {
    return (
      <Router>
        <div className="App">
          <Route path='/'>
            <Header/>
            <div className="search-container">
              <SearchBar/>
              <AddMovieButton/>
            </div>
            <SearchResultsList/>
          </Route>
          <Route exact path='/new'>
            <AddMovieForm/>
          </Route>
        </div>
      </Router>
    );
  }
}

export default App;
Run Code Online (Sandbox Code Playgroud)

我真的不明白为什么这不起作用,为什么我有这个错误.

reactjs react-router-v4

4
推荐指数
1
解决办法
3106
查看次数

Windows 10 Universal Compiled绑定(x:Bind)与ViewModel冲突

我想用编译后的绑定将页面中的元素绑定到代码中的依赖项属性,同时用通常的绑定将另一个元素绑定到ViewModel。但这会导致运行时错误。

这是我的xaml代码。

<Page
x:Class="XbindingProblem.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:XbindingProblem"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
DataContext="{Binding Main, Source={StaticResource Locator}}"
mc:Ignorable="d">
<Page.Resources>
    <DataTemplate x:Key="UserDataTemplate" x:DataType="local:User">
        <StackPanel>
            <TextBlock Text="{x:Bind Name}" />
            <TextBlock Text="{x:Bind Age}" />
        </StackPanel>
    </DataTemplate>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <StackPanel>
        <TextBlock Text="{Binding Title}"/>
        <ContentPresenter ContentTemplate="{StaticResource UserDataTemplate}" Content="{x:Bind CurrentUser, Mode=OneWay}"/>
    </StackPanel>        
</Grid>
Run Code Online (Sandbox Code Playgroud)

这里CurrentUser是依赖项属性,该属性最初为null,然后在运行时更改。这给出了以下运行时错误。

Incorrect type passed into template. Based on the x:DataType global::XbindingProblem.User was expected.
Run Code Online (Sandbox Code Playgroud)

问题在于,当CurrentUser为null时,它将ViewModel传递给UserDataTemplate而不是CurrentUser依赖项属性。

谁能对这个问题有一个很好的解释?

c# xaml win-universal-app uwp

3
推荐指数
1
解决办法
2242
查看次数

标签 统计

reactjs ×2

c# ×1

fbjs ×1

javascript ×1

react-router-v4 ×1

uwp ×1

win-universal-app ×1

xaml ×1