由于异步方法问题,我收到错误消息.在我的终端,我看到:
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) 所以我有一个 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) 这是一个有趣的。
我创建了一个 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) 我正在尝试在我正在设计的应用程序中使用不同的 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粗体、粗体、常规字体等?
因此,我想使用“模态”来禁用屏幕上的所有交互,但我仍然希望屏幕上的所有内容都可见。奇怪的是,它对我来说早些时候就可以正常工作,然后我尝试将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) 我的作业要求我只使用 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)
当然,当我不再悬停时,我希望它恢复到原来的背景颜色。我该怎么做呢?谢谢!!
所以我使用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) 我有一个<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.我该怎么做?
我看过一些使用 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) 我正在尝试从数组中删除对象,如果该对象已存在于数组中。我知道如何删除对象,但是我正在使用该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?他们是同一个对象。