我的应用启动时,我收到此警告

时间:2018-10-28 13:18:00

标签: reactjs react-native react-redux react-router

  

警告:函数作为React子元素无效。如果您从渲染返回一个组件而不是<Component />,则可能会发生这种情况。或者也许您打算调用此函数而不是返回它。
  跨度
  在
  在li
  在ul
  在div
  在div
  在div
  在页眉中
  在div
  在div
  在t
  在主人中
  在Connect(master)中
  在Switch
  在路由器中
  在提供商中

const store = configureStore();
store.dispatch(generalActionLoad());


ReactDOM.render(

	<Provider store={store}>
		<Router history={history}>
			{routes}
		</Router>
	</Provider>
	, document.getElementById('app')
);

我的routes.js:

export default (

  <Switch>
    <Route exact path="/abcd" component={Locked} />

    {/* <Route onEnter={requireAuth}> */}
    <Master  >
      
      < Switch >
        <Route exact path="/abcdefg"  component={abcdefg}/> 
      </ Switch>
     
    </Master>
    {/* </Route>;  */}

    <Route exact path="*" components={NotFound} />
  </Switch>

);

1 个答案:

答案 0 :(得分:0)

您的Routes.js是一个表达式,而不是一个函数,因为您只是导出JSX。

在后台,jsx实际上只是javascript函数。所以当你写

Encoding(posts2$caption_clean) <- "UTF-8"
posts2$caption_clean <- iconv(posts2$caption_clean, "latin1", "UTF-8")
posts2$caption_clean <- gsub("Ã\\S*","",posts2$caption_clean) 
posts2$caption_clean <- gsub("â\\S*","",posts2$caption_clean)
posts2$caption_clean <- gsub("ð\\S*","",posts2$caption_clean)
posts2$caption_clean <- gsub("Â\\S*","",posts2$caption_clean) 
posts2$caption_clean <- gsub("å\\S*","",posts2$caption_clean)
posts2$caption_clean <- gsub("Ð\\S*","",posts2$caption_clean)
posts2$caption_clean <- gsub("Ñ\\S*","",posts2$caption_clean)
posts2$caption_clean <- gsub("Ù\\S*","",posts2$caption_clean)
posts2$caption_clean <- gsub("Ø\\S*","",posts2$caption_clean) 
posts2$caption_clean <- gsub("Ú\\S*","",posts2$caption_clean) 
posts2$caption_clean <- gsub("ì\\S*","",posts2$caption_clean) 
posts2$caption_clean <- gsub("Õ\\S*","",posts2$caption_clean) 
posts2$caption_clean <- gsub("ã\\S*","",posts2$caption_clean) 
posts2$caption_clean <- gsub("Û\\S*","",posts2$caption_clean) 
posts2$caption_clean <- gsub("ë\\S*","",posts2$caption_clean)
posts2$caption_clean <- gsub("ê\\S*","",posts2$caption_clean)
posts2$caption_clean <- gsub("追\\S*","",posts2$caption_clean)

编译后看起来像这样:

<Switch>
 <Route> ...

如果将jsx包装在函数中,这应该可以工作。

React.createElement(Switch, {},
  React.createElement(Route, {}, ...

还需要将组件大写。我不知道您的abcdefg组件是什么(如果只是作为示例或实际组件),但是您需要将其重命名为以大写字母开头的名称,以便react知道其组件。