小编mat*_*hew的帖子

React-Native:使用pagingEnabled时在FlatList中获取当前页面

我有一个看起来像这样的FlastList:

<FlatList
     pagingEnabled={true}
     horizontal={true}
     showsHorizontalScrollIndicator={false}
     data={[ {key:"A"}, {key:"B"} ]}
     renderItem={ ({item, index}) => <MyComponent /> }
 />
Run Code Online (Sandbox Code Playgroud)

我有组件的宽度,所以一次只能在屏幕上显示一个页面.如何确定当前页面是什么(或者显示当前组件)?

react-native react-native-flatlist

18
推荐指数
2
解决办法
1万
查看次数

将Django连接到Google App Engine中的Google CloudSQL Postgres数据库时出错

我正在评估使用Google Cloud和Google App Engine来购买我们公司的新产品.我正在尝试修改本教程以使用Postgres而不是MySQL:

https://cloud.google.com/python/django/flexible-environment

虽然我能够在本地成功连接到数据库,但是当我尝试生产时,我收到以下500错误:

OperationalError at /admin/login/
    could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/cloudsql/<project_name_hidden>:us-central1:<database_id_hidden>/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)

为了连接到Postgres,我对示例项目进行了三处更改.我在app.yaml中有这个片段:

beta_settings:
  cloud_sql_instances: <project_name_hidden>:us-central1:<database_id_hidden>
Run Code Online (Sandbox Code Playgroud)

我在settings.py中有这个片段:

# [START dbconfig]
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'polls',
        'USER': '<db_user_name_hidden>',
        'PASSWORD': '<db_password_hidden>',
        'PORT': '5432',
    }
}
# In the flexible environment, you connect to CloudSQL using a unix socket.
# Locally, you can use the CloudSQL proxy to proxy …
Run Code Online (Sandbox Code Playgroud)

python postgresql google-app-engine google-cloud-sql google-app-engine-python

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

与其他测试用例一起运行时,Django 单元测试失败

我在 Django 单元测试中遇到了不一致的行为。在我使用 sqlite 的开发机器上,如果我分别在我的两个应用程序上运行测试,测试通过,但如果我一次运行manage.py test测试所有内容,我开始在两个测试中一致地获得单元测试失败。

在我使用 Postgres 的临时服务器上,我有一个特定的测试,它在单独测试时有效(例如manage.py test MyApp.tests.MyTestCase.testSomething),但在运行整个测试用例时失败(例如manage.py test MyApp.tests.TestCase)。

其他相关的 StackOverflow 问题似乎有两种解决方案:

  1. 使用 Django TestCase 而不是 Python 等价物
  2. 使用 TransactionTestCase 确保每次测试后都正确清理数据库。

我两个都试了都没用。出于沮丧,我也尝试使用 django-nose,但我看到了同样的错误。我在 Django 1.6 上。

django unit-testing

5
推荐指数
1
解决办法
2089
查看次数

如何使用 Django Rest Framework 反序列化嵌套对象

假设我有这样的 Django 模型:

class Book(models.Model):
  title = models.CharField(max_length=150)
  author = models.CharField(max_length=150) 

class Chapter(models.Model):
  book = models.ForeignKey(Book, related_name='chapters')
  title = models.CharField(max_length=150)
  page_num = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

和 Django Rest Framework 类,如下所示:

class ChapterSerializer(serializers.ModelSerializer):
  class Meta:
    model = Chapter
    fields = ('id', 'title', 'page_num')

class BookSerializer(serializers.ModelSerializer):
  chapters = ChapterSerializer(many=True)

  class Meta:
    model = Book
    fields = ('id', 'title', 'author', 'chapters')

  def create(validated_data):
    chapters = validated_data.pop('chapters')
    book = Book(**validated_data)
    book.save()
    serializer = ChapterSerializer(data=chapters, many=True)
    if serializer.is_valid(raise_exception=True):
        chapters = serializer.save()

class BookCreate(generics.CreateAPIView):
  serializer = BookSerializer(data=request.data)
  if …
Run Code Online (Sandbox Code Playgroud)

django json django-rest-framework

5
推荐指数
1
解决办法
3107
查看次数

ReactJS:为什么我不应该改变嵌套状态?

我已经阅读了有关setState的ReactJS文档.具体来说,这一行:

永远不要直接改变this.state,因为之后调用setState()可能会替换你所做的突变.把this.state看作是不可变的.

但是在我的代码中,我做了这样的事情:

var x = this.state.x;
x.y.z.push("foo"); // z is a list
this.setState({x:x});
Run Code Online (Sandbox Code Playgroud)

此代码似乎正常工作并正确更新状态.但根据文件,我违反了规则.这种方法有什么问题?有性能问题吗?比赛条件?我会被Facebook开发团队骂?理想情况下,我想避免不可变性助手和所有其他疯狂,并保持简单.

reactjs

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

React Native:VirtualizedList仅渲染10个项目

为什么这个VirtualizedList只渲染前应该渲染365的前10个项?如果我传递一个data包含10个以上项目的变量,它可以正常工作,但在使用该getItem方法时会失败.

export default class ListTest extends Component {
  render() {
    return (
      <View>
        <VirtualizedList
          initialNumberToRender={20}
          windowSize={21}
          getItemCount={(data) => 365}
          getItem={(data, index) => {
            return { key: index };
          }}
          keyExtractor={(item, index) => {
            return item.key;
          }}
          renderItem={({ item, index }) => {
            return (
              <View style={{height:50}}>
                <Text>{item.key}</Text>
              </View>
            );
          }}
        />
      </View>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

react-native

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