小编Dre*_*res的帖子

在componentWillUnmount方法中取消所有订阅和Asyncs,如何?

由于异步方法问题,我收到错误消息.在我的终端,我看到:

Warning: Can't call setState (or forceUpdate) on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
- node_modules/fbjs/lib/warning.js:33:20 in printWarning
- node_modules/fbjs/lib/warning.js:57:25 in warning
- node_modules/react-native/Libraries/Renderer/ReactNativeRenderer-dev.js:12196:6 in warnAboutUpdateOnUnmounted
- node_modules/react-native/Libraries/Renderer/ReactNativeRenderer-dev.js:13273:41 in scheduleWorkImpl
- node_modules/react-native/Libraries/Renderer/ReactNativeRenderer-dev.js:6224:19 in enqueueSetState
- node_modules/react/cjs/react.development.js:242:31 in setState
* router/_components/item.js:51:16 in getImage$
- node_modules/regenerator-runtime/runtime.js:62:44 in tryCatch
- node_modules/regenerator-runtime/runtime.js:296:30 in invoke
- ... 13 more stack frames from framework …
Run Code Online (Sandbox Code Playgroud)

javascript lifecycle node.js reactjs react-native

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

FlatList 使用 2 列。我有奇数个项目要显示。如何让最后一个项目左对齐?

所以我有一个 FlatList 组件,它正在呈现奇数个项目。FlatList 有 2 列,我'space-around'用于列包装器。当项目数为偶数时这很好用,但当它是奇数时,此列表中的最后一个项目将居中对齐。

因此,如果最后一行有一个项目,我如何让该项目向左对齐(flex-start)?

          <FlatList
            columnWrapperStyle={ styles.columnWrapper }
            data={ inStockItems }
            keyExtractor={ item => item.itemId }
            horizontal={ false }
            numColumns={ 2 }
            renderItem={ ({ item }) => (
              <ItemContainer
                // style={ styles.userStoreItem }
                item={ item }
                navigate={ this.props.navigation }
                { ...this.props }
                admin
              />
            ) }
          />

styles.columnWrapper: {
    justifyContent: 'space-around',
  },
Run Code Online (Sandbox Code Playgroud)

css react-native

11
推荐指数
2
解决办法
9995
查看次数

如果创建大写字母,则 TextInput 值上的 toLowerCase 会创建重复文本

这是一个有趣的。

我创建了一个 TextInput,它接受一个值,然后将其小写,将其添加到状态,并将其设置为默认值。在我的 android 物理设备上,如果您强制使用大写字母(自动大写设置为无),然后快速点击其他字母,它将复制并添加额外的文本。

有没有办法避免这种情况?

这是小吃https://snack.expo.io/Hk1reKHJ4

在你的安卓或模拟器上运行它,点击键盘上的大写按钮,点击其他几个字母,再次点击大写,点击其他几个字母,你应该设置这个错误。

谢谢!

export default class App extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      text: ''
    }
  }
  render() {
    return (
      <View style={styles.container}>
        <TextInput
          style={ styles.inputContainer }
          defaultValue={ this.state.text }
          autoCapitalize="none"
          onChangeText={ value => this.setState({ 
            text: value.trim().toLowerCase()
            })}
        />
      </View>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

android reactjs react-native

7
推荐指数
2
解决办法
3039
查看次数

React Native San Francisco 字体,中号和浅号

我正在尝试在我正在设计的应用程序中使用不同的 SF 字体。最初的设计使用了多种字体,例如......

SF Compact Display-Black SF Compact Display-Bold SF Compact Display-Heavy SF Compact Display-Regular SF Compact Display-Semibold SF Compact Text-Medium SF Compact Text-Semibold SF UI Text-Regular

但我的 iOS 模拟器无法识别其中任何一个。

由于 SF 是默认字体,我是否应该使用fontWeight粗体、粗体、常规字体等?

fonts ios react-native

5
推荐指数
0
解决办法
3377
查看次数

反应本机模态透明不起作用

因此,我想使用“模态”来禁用屏幕上的所有交互,但我仍然希望屏幕上的所有内容都可见。奇怪的是,它对我来说早些时候就可以正常工作,然后我尝试将Modal变成自己的组件,但是一旦这样做,它就停止了正常工作。然后我回到原来的工作,但仍然遇到同样的问题。当它起作用时,我应该提交它。

知道我哪里出错了吗?

这是我的代码:

import React, { Component } from 'react';
import { View, Image, Modal, Text, Button, TouchableHighlight } from 'react-native';

  constructor(props) {
    super(props);
    this.state = {
      modalVisible: true,
    };
  }

  openModal() {
    this.setState({modalVisible: true});
  }

  closeModal() {
    this.setState({modalVisible: false});
  }



  render() {
      return (
        <View style={styles.container}>
          <Modal
            visible={this.state.modalVisible}
            onRequestClose={() => this.closeModal()}
          >
            <TouchableHighlight
            style={styles.modalContainer}
            onPress={() => this.closeModal()}
            >
              <Text>"Words n stuff"</Text>
            </TouchableHighlight>
          </Modal>
          <View
            style={styles.upperContainer}
          />
          <View
            style={styles.lowerContainer}
          />
        </View>
      );
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

样式:

 modalContainer: {
    flexGrow: 1, …
Run Code Online (Sandbox Code Playgroud)

css reactjs react-native

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

如何使用 jQuery 反转悬停状态?

我的作业要求我只使用 jquery。看起来不太实用,但我能力有限。我能够弄清楚如何执行悬停状态,但是当应用样式时,它会保持不变。所以检查一下这个..

$(".cta-button").css({
      background: "#476887",
      "text-align": "center",
      width: "173px",
      height: "40px",
      margin: "62px auto 33px",
      cursor: "pointer"
    });
    $(".cta-button").hover(function() {
      $(this).css("background-color", "#509de5");
    });
Run Code Online (Sandbox Code Playgroud)

当然,当我不再悬停时,我希望它恢复到原来的背景颜色。我该怎么做呢?谢谢!!

javascript css jquery

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

存在后退按钮时,标题标题不会保持居中,React Native Android 特定,React Navigation

所以我使用React Navigation 3.0 和 React Native。使用标题时,标题标题在 iOS 上默认居中,但在 Android 上左对齐。我使用了一个修复程序来将 Android 的标题标题居中,这很好。当显示后退按钮时,标题标题会被向右推一点。无论哪种方式,我都希望标题保持居中。

所以我尝试给出HeaderLeftContainerStyle一个绝对样式,这样它就不会影响标题的位置,但它没有按预期工作。

有什么建议吗?

下面是一些代码的样子:

const MainCommsStack = createStackNavigator(
  {
    ShowMessages: {
      screen: connect(
        mapStateToProps,
        mapDispatchToProps,
      )(MessageScreen),
    },
    ChatWindow: DetailStack,
  },
  {
    defaultNavigationOptions: {
      headerTitle: 'COMMS',
      headerTitleStyle: [
        baseStyles.whiteHeaderText,
        {
          alignSelf: 'center',
          textAlign: 'center',
          justifyContent: 'center',
          flex: 1,
          textAlignVertical: 'center',
        },
      ],
      headerStyle: {
        backgroundColor: colors.vGreen,
      },
      headerBackImage: <BackButton />,
      headerBackTitle: null,
      headerLeftContainerStyle: {
        position: 'absolute',
        left: 10,
      },
      headerLayoutPreset: 'center',
    },
  },
);
const CommsStack = …
Run Code Online (Sandbox Code Playgroud)

android react-native react-navigation

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

在React Native中基于父组件传递样式

我有一个<Text>传递样式的组件,所以..

TextFile.js:

<Text style={styles.text}> 
  This is a line of text and this might be a second line 
</Text>
Run Code Online (Sandbox Code Playgroud)

screenFile.js:

<View style={styles.viewContainer}>
    <TextFile style={styles.textWithinContainer}>
</View>
Run Code Online (Sandbox Code Playgroud)

textFiles/styles.js:

text: {
    fontSize: 20,
    color: 'black',
    fontWeight: '400',
}
Run Code Online (Sandbox Code Playgroud)

screenFiles/styles.js:

textWithinContainer: {
    textAlign: 'center',
}
Run Code Online (Sandbox Code Playgroud)

textAlign内部textWithInContainer未被应用.如果我添加textAlign: 'center'styles.text给我的风格我想,但它在不同的屏幕上正在使用的,我只希望它处于中心screenFile.我希望样式styles.textWithinContainer来覆盖样式styles.text.我该怎么做?

javascript reactjs react-native

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

在 Javascript 中将毫秒转换为时间戳“Time Ago”(59m、5d、3m 等)

我看过一些使用 PHP 的示例,但我遇到了一些问题,因为我对 PHP 不太熟悉并且时间有限。

我想创建一个时间戳,根据帖子创建的时间,它会显示不同的时间戳。

这就是我要的:

  • 如果帖子创建时间不到一秒,则显示:<1m;

  • 如果帖子是在 1-59 分钟前创建的,则显示://# 分钟// + "m";

  • 如果帖子创建时间小于 1-24 小时,则显示: //# of hours // + "h";

  • 如果帖子是在 1-6 天前创建的,则显示: //# of days // + "d";

  • 如果帖子是在 1-3 周前创建的,则显示://周数//+“w”;

  • 如果帖子是在 1-12 个月前创建的,则显示: //# of Months// + "m";

这是我尝试使用的代码:

function formatTime(timeCreated){


  var periods = ["second", "minute", "hour", "day", "week", "month", "year", "decade"];
  // var actualPeriods = ["m", "h", "d", "w", "m", "y"]
  var lengths = ["60","60","24","7","4.35","12","10"]
  var currentTime = Date.now()
  var difference = currentTime - …
Run Code Online (Sandbox Code Playgroud)

javascript date

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

Includes方法未检测到数组中的现有项目

我正在尝试从数组中删除对象,如果该对象已存在于数组中。我知道如何删除对象,但是我正在使用该includes()方法来查找对象是否存在。我似乎无法正常工作。这是一些代码:

const sampleRange = [{from: 500, to: 600}, {from: 700, to: 800}]

const objectFromRange = sampleRange[0]

const objectRange = {from: 500, to: 600}

sampleRange.includes(objectFromRange) => true

sampleRange.includes(objectRange) => false

Run Code Online (Sandbox Code Playgroud)

那么,为什么一个sampleRange.includes出现true而另一个则作为false?他们是同一个对象。

javascript

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