开发者问题收集

TypeError:未定义不是一个函数(靠近'..._styledComponents.default.button...')

2021-09-17
3914

我在 React Native 项目中使用 styled-components 时出现此错误。

TypeError: undefined is not a function (near '..._styledComponents.default.button...')

这是我的代码;

import styled from "styled-components";
const Buttonn = styled.button`
  background: white;
  width: 200px;
  height: 50px;
  bordercolor: black;
  font-size: 24px;
  color: black;
  text-align: center;
  &:hover {
    background: black;
    color: white;
  }
`;

function CourierDetails() {
  return (
  <Buttonn>Submit</Buttonn>
)}
1个回答

styled.button 在 React (web) 中有效,如果您想在 React-native 中设置按钮样式,则必须使用 react-native 提供的按钮组件。

您还必须从“styled-components/native”导入样式组件

import styled from 'styled-components/native'

您可以创建一个 CustomButton 组件,如下所示

import React from 'react';
import styled from 'styled-components/native';

const CustomButton = props => (
    <ButtonContainer
        onPress={() => alert('Hi!')}
        backgroundColor={props.backgroundColor}
    >
        <ButtonText textColor={props.textColor}>{props.text}</ButtonText>
</ButtonContainer>
);

export default CustomButton;

const ButtonContainer = styled.TouchableOpacity`
    width: 100px;
    height: 40px
    padding: 12px;
    border-radius: 10px;    
    background-color: ${props => props.backgroundColor}; 
`;

const ButtonText = styled.Text`
    font-size: 15px;
    color: ${props => props.textColor};
    text-align: center;
`;

希望这个答案对您有所帮助,谢谢!

Ali Arslan Ansari
2021-09-17