解决:错误:元素类型无效...得到:未定义。检查“发现”的渲染方法

时间:2020-05-24 05:11:03

标签: javascript reactjs typescript react-native mobx-react

Full error from yarn ios display

更新:通过注释掉整个Ionicon部分,我已经解决了该错误。现在我有一个内存泄漏错误,现在没有要搜索的图像,但是回答了这个问题!

我正在尝试创建一个搜索栏,该搜索栏将在您搜索(配置文件列表)后为您显示结果,例如Instagram。我收到此错误,并且确保索引文件导出了Discover。当我尝试单击选项卡栏的发现选项卡,并尝试运行此代码时,会发生问题。我之所以使用'SearchStore'是因为由于钩子错误(我已修复)而无法使用setSearch&useState,这是我到达的解决方案,它使用mobx注入数据。我无法解决此渲染问题,似乎我尝试的所有操作都会导致其他错误。

我真的很感谢您的帮助,因为我是javascript / react native的新手,这真使我丧命。如果您还需要其他代码段(例如,routes文件或选项卡条形码),我会提供的。

这是Discover.tsx

Command raised an exception: AttributeError: 'dict' object has no attribute 'json'

这是发现使用的style.ts:

import React, { useState } from 'react'; 
import Ionicons from 'react-native-vector-icons';
import { Container, Search, Header, Input } from './styles';
import { TypedComponent } from '../../Components';
import { SearchStore } from '../../Stores/Search';
import { hoc } from '../../Modules';

//export const Discover: React.FC = () => {
@hoc("search")
export class Discover extends TypedComponent<{search?: SearchStore;}> {
  render() {
    const { search, lang } = this.props;
    //const { search } = this.props;
    const str = lang.str.search;
    //const [search, setSearch] = useState('');
    return (
      <Container>
        <Header>
          <Search>
            <Ionicons
              name="search1"
              style={{
                  paddingRight: 10,
              }} 
              size={18} color="#838383" />
          <Input
              placeholder="Search"
              //value={search}
              value={search.editingSearch}
              returnKeyType="search"
              onChangeText={search.onSearchEdit}
              //onChangeText={text => setSearch(text)}
            />
          </Search>
        </Header>
      </Container>
    );
  }
}

export default Discover;

0 个答案:

没有答案